Android中图表AChartEngine学习使用与例子
很多时候项目中我们需要对一些统计数据进行绘制表格,更多直观查看报表分析结果。基本有以下几种方法:
1:可以进行android api进行draw这样的话,效率比较低
2:使用开源绘表引擎,这样效率比较高.下面就介绍一种。
AChartEngine(简称ACE)是Google的一个开源图表库(for Android)。它功能强大,支持散点图、折线图、饼图、气泡图、柱状图、短棒图、仪表图等多种图表。
你可以选择合适的版本下载,每个版本都有一个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
Android中图表AChartEngine学习使用与例子的更多相关文章
- 在android中使用achartengine来绘制各种图表
可以绘制线性图,点状图,柱状图,饼状图,气泡图等 1. [文件] ABarChart.java ~ 2KB 下载(231) ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
- [转]android中drawable资源的解释及例子
原文链接: http://blog.csdn.net/wode_dream/article/details/38584693 文章中的内容参考Dev Guide中的Drawable R ...
- Android中Service深入学习
概述 1.当用户在与当前应用程序不同的应用程序时,Service可以继续在后台运行. 2.Service可以让其他组件绑定,以便和它交互并进行进程间通信. 3.Service默认运行在创建它的应用程序 ...
- Android中的动画学习总结
android中动画可分为三种:帧动画,补间动画,和属性动画.其中属性动画是google推荐的,它可以实现前面两种动画的效果,运用起来更加灵活. 帧动画:顾名思义,就是一帧一帧的图片,快速播放形成的动 ...
- Java反射及其在Android中的应用学习总结
一. Java反射机制 Reflection 是Java被视为动态(或准动态)语言的一个关键性质.这个机制同意程序在执行时透过Reflection APIs取得不论什么一个已知名称的class的内部信 ...
- Android中使用achartengine生成图表
今天在做项目的时候用到了图表功能,记录下来 achartengine是google的一个开源项目,可以在https://code.google.com/p/achartengine/ 下载技术文档,j ...
- Android中的第一个NDK的例子
前几天研究了JNI技术后,想在Android上试一试研究结果,查阅了很多资料后,总结如下步骤: 首先来看一下什么是NDK NDK 提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动 ...
- 我的Android进阶之旅------>Android中编解码学习笔记
编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等 ...
- Android中的Telephony学习笔记(2)
上一篇文章中学习了android.provider中Telephony类. 这一篇文章学习android.telephony包中的类,这些类是android提供给上层调用的API. 为监測基本电话信息 ...
随机推荐
- K2 blackpearl 安装
转:http://blog.csdn.net/gxiangzi/article/details/8432188 K2是国外的一款BPM引擎,基于MS的Workflow,关于它的详细介绍在我之前一片博客 ...
- mssql的delete用用到被delete的表的别名
+' delete m from '+@strDBName +'.dbo.m_device as m where not exists ' +' (select 1 from @tmpDevice w ...
- 我的ECshop二次开发从零开始
我是一个EC新手,EC就算做再多的模板,肯定也满足不了我们的需要,更何况各行有各行的门道,EC统一做出来的模板也不一定合适于我们这个行业用,因此,只有我们真正掌握了自己做模板,修改模板的功夫,才能真正 ...
- IPy的使用
IPy - class and tools for handling of IPv4 and IPv6 addresses and networks. Website: https://github. ...
- Jedis的Sharded源代码分析
概述 Jedis是Redis官方推荐的Java客户端,更多Redis的客户端可以参考Redis官网客户端列表.当业务的数据量非常庞大时,需要考虑将数据存储到多个缓存节点上,如何定位数据应该存储的节点, ...
- 陈发树云南白药股权败诉真相 取胜仅差三步 z
22亿元现金,三年只拿到750多万元的利息.福建富豪陈发树的云南生意可谓失望之极.在漫长的官司中,曾经有绝处逢生之机的陈发树,连告状的主体都没有找准,岂能同强大的国企扳手腕?陈发树律师团距取胜只有三步 ...
- java 使用相对路径读取文件
java 使用相对路径读取文件 1.java project环境,使用java.io用相对路径读取文件的例子: *目录结构: DecisionTree |___src ...
- CSS选择器的兼容性
CSS 1 CSS2.1 CSS3 :hover 在IE6中只有a元素可用.E:empty 貌似在webkit核心浏览器中有些小bug.如果这个bug依然存在,不太确定如何测试.IE6不支持.clas ...
- javascript AES加密 C#AES解密实现
首先需要引入js类库 crypto-js(开源),地址:http://code.google.com/p/crypto-js 现在很多人无法打开这个地址不要紧,下面我们会将全部代码贴出来 需要引入 a ...
- <转>DNS服务系列之二:DNS区域传送漏洞的安全案例
DNS区域传送(DNS zone transfer)指的是一台备用服务器使用来自主服务器的数据刷新自己的域(zone)数据库.这为运行中的DNS服务提供了一定的冗余度,其目的是为了防止主的域名服务器因 ...