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

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

  1. public interface AChartAbstract {
  2. /**
  3. * 获取一个当前类型图标的Intent实例
  4. */
  5. public Intent getIntent(Context context);
  6. }

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

  1. public class BarChart implements AChartAbstract {
  2. public Intent getIntent(Context context) {
  3. Intent mIntent=ChartFactory.getBarChartIntent(context, getDataSet(), getRenderer(), Type.STACKED, "当月开票金额树状图");
  4. return mIntent;
  5. }
  6. /**
  7. * 构造数据
  8. * @return
  9. */
  10. public XYMultipleSeriesDataset getDataSet() {
  11. // 构造数据
  12. XYMultipleSeriesDataset barDataset = new XYMultipleSeriesDataset();
  13. CategorySeries barSeries = new CategorySeries("2014年3月");
  14. barSeries.add(865.5969);
  15. barSeries.add(2492.6479);
  16. barSeries.add(891.0137);
  17. barSeries.add(0.0);
  18. barSeries.add(691.0568);
  19. barDataset.addSeries(barSeries.toXYSeries());
  20. return barDataset;
  21. }
  22. /**
  23. * 构造渲染器
  24. * @return
  25. */
  26. public XYMultipleSeriesRenderer getRenderer() {
  27. XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
  28. //      renderer.setChartTitle("当月开票");
  29. //      // 设置标题的字体大小
  30. //      renderer.setChartTitleTextSize(16);
  31. renderer.setXTitle("事业部");
  32. renderer.setYTitle("单位(万元)");
  33. renderer.setAxesColor(Color.WHITE);
  34. renderer.setLabelsColor(Color.WHITE);
  35. // 设置X轴的最小数字和最大数字
  36. renderer.setXAxisMin(0.5);
  37. renderer.setXAxisMax(5.5);
  38. // 设置Y轴的最小数字和最大数字
  39. renderer.setYAxisMin(0);
  40. renderer.setYAxisMax(3000);
  41. renderer.addXTextLabel(1, "电网");
  42. renderer.addXTextLabel(2, "通信");
  43. renderer.addXTextLabel(3, "宽带");
  44. renderer.addXTextLabel(4, "专网");
  45. renderer.addXTextLabel(5, "轨交");
  46. renderer.setZoomButtonsVisible(true);
  47. // 设置渲染器允许放大缩小
  48. renderer.setZoomEnabled(true);
  49. // 消除锯齿
  50. renderer.setAntialiasing(true);
  51. // 设置背景颜色
  52. renderer.setApplyBackgroundColor(true);
  53. renderer.setBackgroundColor(Color.GRAY);
  54. // 设置每条柱子的颜色
  55. SimpleSeriesRenderer sr = new SimpleSeriesRenderer();
  56. sr.setColor(Color.YELLOW);
  57. renderer.addSeriesRenderer(sr);
  58. // 设置每个柱子上是否显示数值
  59. renderer.getSeriesRendererAt(0).setDisplayChartValues(true);
  60. // X轴的近似坐标数  (这样不显示横坐标)
  61. renderer.setXLabels(0);
  62. // Y轴的近似坐标数
  63. renderer.setYLabels(6);
  64. // 刻度线与X轴坐标文字左侧对齐
  65. renderer.setXLabelsAlign(Align.LEFT);
  66. // Y轴与Y轴坐标文字左对齐
  67. renderer.setYLabelsAlign(Align.LEFT);
  68. // 允许左右拖动,但不允许上下拖动.
  69. renderer.setPanEnabled(true, false);
  70. // 柱子间宽度
  71. renderer.setBarSpacing(0.5f);
  72. // 设置X,Y轴单位的字体大小
  73. renderer.setAxisTitleTextSize(20);
  74. return renderer;
  75. }

最后主函数直接

  1. Intent lineIntent = new BarChart().getIntent(this);
  2. startActivity(lineIntent);

直接启动Androidmanifest.xml已经配置的activity就可以显示树状图了。


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

Android中图表AChartEngine学习使用与例子的更多相关文章

  1. 在android中使用achartengine来绘制各种图表

    可以绘制线性图,点状图,柱状图,饼状图,气泡图等 1. [文件] ABarChart.java ~ 2KB     下载(231) ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

  2. [转]android中drawable资源的解释及例子

    原文链接:         http://blog.csdn.net/wode_dream/article/details/38584693 文章中的内容参考Dev Guide中的Drawable R ...

  3. Android中Service深入学习

    概述 1.当用户在与当前应用程序不同的应用程序时,Service可以继续在后台运行. 2.Service可以让其他组件绑定,以便和它交互并进行进程间通信. 3.Service默认运行在创建它的应用程序 ...

  4. Android中的动画学习总结

    android中动画可分为三种:帧动画,补间动画,和属性动画.其中属性动画是google推荐的,它可以实现前面两种动画的效果,运用起来更加灵活. 帧动画:顾名思义,就是一帧一帧的图片,快速播放形成的动 ...

  5. Java反射及其在Android中的应用学习总结

    一. Java反射机制 Reflection 是Java被视为动态(或准动态)语言的一个关键性质.这个机制同意程序在执行时透过Reflection APIs取得不论什么一个已知名称的class的内部信 ...

  6. Android中使用achartengine生成图表

    今天在做项目的时候用到了图表功能,记录下来 achartengine是google的一个开源项目,可以在https://code.google.com/p/achartengine/ 下载技术文档,j ...

  7. Android中的第一个NDK的例子

    前几天研究了JNI技术后,想在Android上试一试研究结果,查阅了很多资料后,总结如下步骤: 首先来看一下什么是NDK NDK 提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动 ...

  8. 我的Android进阶之旅------>Android中编解码学习笔记

    编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等 ...

  9. Android中的Telephony学习笔记(2)

    上一篇文章中学习了android.provider中Telephony类. 这一篇文章学习android.telephony包中的类,这些类是android提供给上层调用的API. 为监測基本电话信息 ...

随机推荐

  1. 浏览器HTML5支持程度测试

    /********************************************************************* * 浏览器HTML5支持程度测试 * 说明: * 想知道对 ...

  2. 求强连通分量模板(tarjan算法)

    关于如何求强连通分量的知识请戳 https://www.byvoid.com/blog/scc-tarjan/ void DFS(int x) { dfn[x]=lowlink[x]=++dfn_cl ...

  3. 【转】iOS类似Android上toast效果

    原文网址:http://m.blog.csdn.net/article/details?id=50478737 做过Android开发的人都知道toast,它会在界面上显示一排黑色背景的文字,用于提示 ...

  4. 【转】WPS文档怎么清除格式

    原文网址:http://jingyan.baidu.com/article/c74d600060dc4a0f6a595d21.html 我们知道有时候如果我们粘贴了别的地方的文字到自己的文档里来,就会 ...

  5. Oracle 存储过程动态建表

    动态sql,顾名思义就是动态执行的sql,也就是说在没执行之前是动态的拼接的. 任务 传入参数:新建的表名hd+当前的年和月,例如hd_201105表结构是:字段1:id ,类型是number,可以自 ...

  6. bjfu1097 图标排列

    这是2011年百度之星的一道题.这题的做法就是找规律,规律找对了,代码极水.规律我一开始也没有找到,后来经人提醒,发现如下规律:对于每个开发者,其所有应用的分离度和一定是其第一个应用与最后一个应用的距 ...

  7. duilib底层机制剖析:窗体类与窗体句柄的关联

    转载请说明原出处,谢谢~~ 看到群里朋友有人讨论WTL中的thunk技术,让我联想到了duilib的类似技术.这些技术都是为了解决c++封装的窗体类与窗体句柄的关联问题. 这里是三篇关于thunk技术 ...

  8. 用Vmware安装centos5

    Vmware安装过程就不详述了,这里从创建虚拟机开始记录. 选择创建虚拟机 下一步 选择稍后安装 选择安装的操作系统版本,需要说明的是,CentOs 5 就是RHEL 5 设置虚拟机名称及虚拟机位置 ...

  9. 【现代程序设计】【期末作业】【homework-09】

    作业要求说明: http://www.cnblogs.com/xinz/p/3441537.html 我在做一个什么样的应用: 展示如何逐步求解一个加权矩阵的 最大子矩阵 任意联通图形 下面是软件的截 ...

  10. EasyUI样式在IE下无法显示原因总结

    1.js css顺序错误 <script type="text/javascript" charset="utf-8" src="js/jque ...