首页 > 移动平台 > 详细

Android图表AChartEngine

时间:2014-03-12 06:42:06      阅读:597      评论:0      收藏:0      [点我收藏+]

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

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接口

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

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

bubuko.com,布布扣
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;
    }
bubuko.com,布布扣

5: 最后主函数直接

bubuko.com,布布扣
Intent lineIntent = new BarChart().getIntent(this);
            startActivity(lineIntent);
bubuko.com,布布扣

Android图表AChartEngine,布布扣,bubuko.com

Android图表AChartEngine

原文:http://www.cnblogs.com/lchd/p/3594025.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!