很多时候项目中我们需要对一些统计数据进行绘制表格,更多直观查看报表分析结果。基本有以下几种方法: 1:可以进行android api进行draw这样的话,效率比较低 2:使用开源绘表引擎,这样效率比较高.下面就介绍一种。 AChartEngine(简称ACE)是Google的一个开源图表库(for Android)。它功能强大,支持散点图、折线图、饼图、气泡图、柱状图、短棒图、仪表图等多种图表。 该项目地址位于: http://code.google.com/p/achartengine/ 你可以选择合适的版本下载,每个版本都有一个jar包、实例源代码和java doc提供下载。当前最新版本为1.1.0。 上面是两幅用该引擎绘制出来的图标例子. 如上图所示:可以有demo源代码,文档和jar包,根据所需进行下载: 下面稍微演示一下生成一个树状图: 1:新建项目,把jar引入进去 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就可以显示树状图了。 上面的注释已经写的比较清楚了。基本是可以明白的。更多图表的例子可以在http://code.google.com/p/achartengine/中下载demo |