2012年7月31日星期二

aChartEngine图表显示(饼图、柱状图、折线图)

aChartEngine图表显示(饼图、柱状图、折线图)

由于项目需要,要用到图表显示,所以就上网查找了些资料,就找到了下面一张图,以及几个概念:

2.png

 

从图中可以看出,绘制一个图表,需要理解三个概念

1、ChartFactory

传入Renderer,Dataset的参数,然后用getXXXChartIntent(Context context,XYMutilpleSeriesRenderer,XYMutilpleSeriesDataset)方法进行图表的显示

2、XYMutilpleSeriesRenderer

用于进行绘制的设置,添加的Renderer对象,用于定义绘制的点集合设置,注意数量要和Dataset添加的XYseries一致!!!

3、XYMutilpleSeriesDataset

用于数据的存放,添加的XYseries对象,用于提供绘制的点集合的数据

下面是我学习之后的总结:

说白了,就三个东西,一个Intent,一个Renderer和一个Dataset。

Intent       就是要启动一个GraphicalActivity来显示图表用的,这个GraphicalActivity需要在manifest注册!

                  一般由 ChartFactory.get***ChartIntent获得,如下:

ChartFactory.getBarChartIntent(context, getBarDataset(),renderer, Type.DEFAULT);

Renderer 就是渲染器,设置图表显示的一些特征,比如图表的大小,标题,坐标轴的颜色,背景颜色等

DefaultRenderer renderer = new DefaultRenderer();       renderer.setBackgroundColor(Color.GRAY);// 背景颜色       renderer.setLabelsTextSize(25);// 标签文字大小        renderer.setChartTitle("手机系统");// 图表名称        renderer.setChartTitleTextSize(30);// 图表名称大小        renderer.setLegendTextSize(30);// 图标字体大小        renderer.setLegendHeight(100);// 图标文字距离底边的高度        renderer.setPanEnabled(false);//图表是否可以移动        renderer.setZoomEnabled(true);//图表是否可以缩放

Dataset    就是数据集,就是你自己要制作表的数据集

XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();   double[] data1 = { 19, 23, 23, 42, 25, 25, 17, 28, 39 };   double[] data2 = { 39, 43, 13, 12, 15, 35, 37, 18, 19 };   for (int i = 0; i < 2; i++) {       CategorySeries series = new CategorySeries("测试数据" + (i + 1));       if (i == 0) {           for (int j = 0; j < data1.length; j++) {               series.add(data1[j]);           }       } else {           for (int j = 0; j < data2.length; j++) {               series.add(data2[j]);           }       }       dataset.addSeries(series.toXYSeries());   }

源码附上:点击下载ShowChart.zip


TAG: