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

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




更多相关文章

  1. [Android] 滑动操作的原理及处理
  2. android 状态选择器和shape的运用
  3. wifi和AP共存方案研究--Android8.0
  4. Android(安卓)布局阴影实现
  5. HTC,Android,安卓设置GPRS,
  6. AChartEngine中大饼图
  7. android中 spannable的使用【转】
  8. 自定义HttpURLConnection工具类
  9. android给view加数字

随机推荐

  1. android scroller overscroller用法
  2. SQLite3命令行使用查询android的telephon
  3. 2.1、Android Studio 开发流程
  4. Android模块编译过程中的错误no rules to
  5. 1.android 通过wifi调用打印机
  6. Android异步加载图像小结----演化理解 An
  7. Android简单的绘图机制与技巧
  8. Chrome访问Wap
  9. Android 基础知识7:Android 应用权限详解
  10. Android 中的注解深入探究