之前在java开发中实现图表使用JFreeChar组件,最近有个小项目要求在Android端进行数据分析,如何实现图表呢?查了一下google提供了一个开源组件Achartengine非常好用,可实现绘制各种图形,完全满足了开发的需要,下面就说说如何使用。

一、准备工作

下载jar包

官网地址:http://code.google.com/p/achartengine/

网盘地址:http://pan.baidu.com/s/1EYhUe(含API文档,代码)

二、关键点说明——AchartEngined的使用

1、ChartFactory组件

  ChartFactory组件提供getXXXX方法可获得不同的图形,例如

getBarChartView()柱状图

getPieChartView()饼图

getLineChartView(Context context ,XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer)//折线图

getCubeLineChartView() //圆滑曲线图

2、CategorySeries和DefaultRenderer

  这些方法一般都有三个参数依次为(不同图形还会有增加一些参数)

  Context context,CategorySeries dataset, DefaultRenderer renderer

Context:表示应用上下文

CategorySeries:是图表的数据信息,包含构成的元素名称和值AchartEngined就是根据这个数据统计所占百分比的

DefaultRenderer:设置图片的样式,如设置每个元素的颜色、标题大小、背景颜色等

  如绘制饼图,代码如下:

//创建CategorySeries 组件
CategorySeries series=new CategorySeries(“第一季度销售分析”);
series.add(“一月”,30000);
series.add(“二月”,40000);
series.add(“三月”,36000);
//创建DefaultRenderer组件
DefaultRenderer renderer = new DefaultRenderer(); renderer.setMargins(new int[] { 20, 30, 0 });//设置图例之间的间接单位为px
renderer.setLabelsTextSize(15);//设置标签的字体大小
renderer.setLegendTextSize(15);//设置图例的字体大小
SimpleSeriesRenderer r1 = new SimpleSeriesRenderer();
r1.setColor(Color.BLUE);
renderer.addSeriesRenderer(r1);//设置饼图颜色,一月份
SimpleSeriesRenderer r2 = new SimpleSeriesRenderer();
r1.setColor(Color.GREEN);
renderer.addSeriesRenderer(r2);//设置饼图颜色,二月份
SimpleSeriesRenderer r3 = new SimpleSeriesRenderer();
r1.setColor(Color.RED);
renderer.addSeriesRenderer(r3); //设置饼图颜色,三月份
//产生饼图
GraphicalView view=ChartFactory.getPieChartView(context, series, renderer);

3、GraphicalView

  这些方法返回呈现图表的View——GraphicalView ,使用Layout的addView()方法添加到布局中即可显示,如:

GraphicalView view=ChartFactory.getPieChartView(context, series, renderer);
layout.addView(charView);

  绘制其他图形步骤和饼图大同小异,大家可以结合API文档测试一下

三、实现案例

  该案例包含绘制曲线、柱状图、饼形,进行了在AchartEngined组件基础上化封装,核心代码上述例子已经讲解,这里只提供下载地址

  源码下载地址:http://pan.baidu.com/s/1eQlJJVG

作者:杰瑞教育
出处:http://www.cnblogs.com/jerehedu/ 
本文版权归烟台杰瑞教育科技有限公司和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
 

Android制作曲线、柱状图、饼形等图表——使用AChartEngine的更多相关文章

  1. Android 图表绘制 achartengine 示例解析

    一. AChartEngine 简介 1. 项目地址 AChartEngine 简介 : AChartEngine 是 Android 平台的图表开发库, 能绘制 折线图, 饼图, 气泡图, 柱状图, ...

  2. 【Android 应用开发】Android 图表绘制 achartengine 示例解析

    作者 : 韩曙亮 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/38420197 一. AChartEngine 简介 1. 项 ...

  3. 安卓图表引擎AChartEngine(三) - 示例源码折线图、饼图和柱状图

    折线图: package org.achartengine.chartdemo.demo.chart; import java.util.ArrayList; import java.util.Lis ...

  4. [Swift通天遁地]三、手势与图表-(13)制作美观简介的滚动图表:折线图表、面积图表、柱形图表、散点图表

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  5. [Android]使用Dagger 2依赖注入 - 图表创建的性能(翻译)

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5098943.html 使用Dagger 2依赖注入 - 图表创 ...

  6. Android手动画柱状图的例子

    效果图如上,网上看到的例子,谨以此文记录一下,以后用到的地方再来翻翻. 核心技术是用Canvas和Paint画长方形. 源码地址:http://download.csdn.net/detail/abc ...

  7. 从零开始学Xamarin.Forms(三) Android 制作启动画面

    原文:从零开始学Xamarin.Forms(三) Android 制作启动画面     Xamarin.Forms 在启动的时候相当慢,必须添加一个启动界面,步骤如下: 1.将启动画面的图片命名为:s ...

  8. 用ESP8266+android,制作自己的WIFI小车(Android 软件)

    先说一下这篇文章里面的内容:TCP 客户端, 自定义对话框, 自定义按钮, ProgressBar竖直显示, 重力感应传感器,手机返回键新开启界面的问题(返回上次的界面),数据保存 软件的通信是配合 ...

  9. xamarin android制作圆角边框

    xamarin android制作圆角边框 效果图如下: 关键代码: drawable文件夹新建shape_corner_down.xml <?xml version="1.0&quo ...

随机推荐

  1. Swift2.0语言教程之Swift2.0语言中的标准函数

    Swift2.0语言教程之Swift2.0语言中的标准函数 Swift2.0中的标准函数 函数除了可以根据参数列表的有无分为无参函数和有参函数,还可以从定义角度分为用户自定义函数和标准函数两种.以上的 ...

  2. python的可变与不可变数据类型

    <python的可变与不可变数据类型>     python与C/C++不一样,它的变量使用有自己的特点,当初学python的时候,一定要记住“一切皆为对象,一切皆为对象的引用”这句话,其 ...

  3. Problem A&B: 开宝箱 1/2 (最沙雕的做法)(未用指针做) 改:附上一种指针做法

    Description 急先锋是一个商人,有一天找到了一个宝箱,宝箱需要正确的密码才能打开.同时他发现宝箱上有一个数字,和一份密码表.密码表上有n个密码,只有一个密码是正确的. 急先锋所在的岛上有m个 ...

  4. Substring with Concatenation of All Words 题解

    题意 You are given a string, s, and a list of words, words, that are all of the same length. Find all ...

  5. Codeforces Round #360 (Div. 2) C. NP-Hard Problem 水题

    C. NP-Hard Problem 题目连接: http://www.codeforces.com/contest/688/problem/C Description Recently, Pari ...

  6. 最小生成树-普利姆算法eager实现

    算法描述 在普利姆算法的lazy实现中,参考:普利姆算法的lazy实现 我们现在来考虑这样一个问题: 我们将所有的边都加入了优先队列,但事实上,我们真的需要所有的边吗? 我们再回到普利姆算法的lazy ...

  7. 华为S5300系列交换机V200R001SPH027升级补丁

    S5300SI-V200R001SPH027.pat 附件: 链接:https://pan.baidu.com/s/1ulE0j5Rp4xMkAaOjNGKLMA  密码:d5ze

  8. Is Usb Drive () ? DeviceIoControl, IOCTL_STORAGE_QUERY_PROPERTY

    http://banderlogi.blogspot.com/2011/06/enum-drive-letters-attached-for-usb.html typedef enum _STORAG ...

  9. WaitForSingleObject和CEvent用法

    WaitForSingleObject函数用来检测hHandle事件的信号状态,当函数的执行时间超过dwMilliseconds就返回,但如果参数dwMilliseconds为INFINITE时函数将 ...

  10. superobject

    GITHUB: https://github.com/hgourvest/superobject # SuperObject ## What is JSON ? - JSON (JavaScript ...