zoukankan      html  css  js  c++  java
  • Android图表AChartEngine

    很多时候项目中我们需要对一些统计数据进行绘制表格,更多直观查看报表分析结果。基本有以下几种方法:

    1:可以进行android api进行draw这样的话,效率比较低

    2:使用开源绘表引擎,这样效率比较高.下面就介绍一种。

    AChartEngine(简称ACE)是Google的一个开源图表库(for Android)。它功能强大,支持散点图、折线图、饼图、气泡图、柱状图、短棒图、仪表图等多种图表。

    该项目地址位于: http://code.google.com/p/achartengine/

    你可以选择合适的版本下载,每个版本都有一个jar包、实例源代码和java doc提供下载。当前最新版

    使用:

    1:新建项目,把jar引入进去

    2:在Androidmanifest.xml文件中进行配置文件

       因为接下来要考这个Activity进行显示图表

    3:下面创建一个AChart接口

    public interface AChartAbstract {
         
        /**
         * 获取一个当前类型图标的Intent实例
         */
        public Intent getIntent(Context context);
    }

    4:创建BarChart.java进行准备数据源和引擎设置

    public class BarChart implements AChartAbstract {
     
        public Intent getIntent(Context context) {
            Intent mIntent=ChartFactory.getBarChartIntent(context, getDataSet(), getRenderer(), Type.STACKED, "当月开票金额树状图");
            return mIntent;
        }
     
        /**
         * 构造数据
         * @return
         */
        public XYMultipleSeriesDataset getDataSet() {
            // 构造数据
            XYMultipleSeriesDataset barDataset = new XYMultipleSeriesDataset();
            CategorySeries barSeries = new CategorySeries("2014年3月");
            barSeries.add(865.5969);
            barSeries.add(2492.6479);
            barSeries.add(891.0137);
            barSeries.add(0.0);
            barSeries.add(691.0568);
            barDataset.addSeries(barSeries.toXYSeries());
            return barDataset;
        }
     
        /**
         * 构造渲染器
         * @return
         */
        public XYMultipleSeriesRenderer getRenderer() {
            XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
    //      renderer.setChartTitle("当月开票");
    //      // 设置标题的字体大小
    //      renderer.setChartTitleTextSize(16);
            renderer.setXTitle("事业部");
            renderer.setYTitle("单位(万元)");
            renderer.setAxesColor(Color.WHITE);
            renderer.setLabelsColor(Color.WHITE);
            // 设置X轴的最小数字和最大数字
            renderer.setXAxisMin(0.5);
            renderer.setXAxisMax(5.5);
            // 设置Y轴的最小数字和最大数字
            renderer.setYAxisMin(0);
            renderer.setYAxisMax(3000);
            renderer.addXTextLabel(1, "电网");
            renderer.addXTextLabel(2, "通信");
            renderer.addXTextLabel(3, "宽带");
            renderer.addXTextLabel(4, "专网");
            renderer.addXTextLabel(5, "轨交");
            renderer.setZoomButtonsVisible(true);
            // 设置渲染器允许放大缩小
            renderer.setZoomEnabled(true);
            // 消除锯齿
            renderer.setAntialiasing(true);
            // 设置背景颜色
            renderer.setApplyBackgroundColor(true);
            renderer.setBackgroundColor(Color.GRAY);
            // 设置每条柱子的颜色
            SimpleSeriesRenderer sr = new SimpleSeriesRenderer();
            sr.setColor(Color.YELLOW);
            renderer.addSeriesRenderer(sr);
            // 设置每个柱子上是否显示数值
            renderer.getSeriesRendererAt(0).setDisplayChartValues(true);
            // X轴的近似坐标数  (这样不显示横坐标)
            renderer.setXLabels(0);
            // Y轴的近似坐标数
            renderer.setYLabels(6);
            // 刻度线与X轴坐标文字左侧对齐
            renderer.setXLabelsAlign(Align.LEFT);
            // Y轴与Y轴坐标文字左对齐
            renderer.setYLabelsAlign(Align.LEFT);
            // 允许左右拖动,但不允许上下拖动.
            renderer.setPanEnabled(true, false);
            // 柱子间宽度
            renderer.setBarSpacing(0.5f);
            // 设置X,Y轴单位的字体大小
            renderer.setAxisTitleTextSize(20);
            return renderer;
        }

    5: 最后主函数直接

    Intent lineIntent = new BarChart().getIntent(this);
                startActivity(lineIntent);
  • 相关阅读:
    [Chrome扩展]屏蔽Google搜索结果重定向
    [Winform/C#]点击工作区域移动窗体
    [Silverlight]键盘钩子KeyboardHook
    (python笔记)模拟手机apk卸载安装
    设备管理系统在Sharepoint2007上的开发再准备
    设备管理系统在Sharepoint2007上的开发 准备
    做了好久的小白,总算知道LiveWriter也可以在Cnblogs上发布日志了,方便
    Bertini的车子不好找啊
    Baby用的护肤霜
    出离愤怒的飙车
  • 原文地址:https://www.cnblogs.com/lchd/p/3594025.html
Copyright © 2011-2022 走看看