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

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

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

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

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

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

Android中图表AChartEngine学习使用与例子 Android中图表AChartEngine学习使用与例子 

上面是两幅用该引擎绘制出来的图标例子.

Android中图表AChartEngine学习使用与例子

如上图所示:可以有demo源代码,文档和jar包,根据所需进行下载:

下面稍微演示一下生成一个树状图:

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

Android中图表AChartEngine学习使用与例子

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

 <activity android:name="org.achartengine.GraphicalActivity" />

因为接下来要考这个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; 	}

最后主函数直接

Intent lineIntent = new BarChart().getIntent(this); 			startActivity(lineIntent);
直接启动Androidmanifest.xml已经配置的activity就可以显示树状图了。

Android中图表AChartEngine学习使用与例子
上面的注释已经写的比较清楚了。基本是可以明白的。更多图表的例子可以在http://code.google.com/p/achartengine/中下载demo