第三方绘图控件 AChartEngine 浅析
来源:互联网 发布:在家网络兼职招聘 编辑:程序博客网 时间:2024/06/07 15:08
背景
当今越来越多的Android APP使用友好的界面与用户交互,如图所示的炒股类APP、财务报表类APP等。
可见,绘图控件必不可少,Android系统提供了如下的绘图工具:
2D图形绘制
-Paint
-Canvas3D图形绘制
-Open GL ES
系统的绘图控件理论上当然可以绘制出任何图形效果,但一般来说,开发者不会从头开发一个图形界面。下面介绍一个第三方开源绘图控件,通过该控件,可以方便地绘制折线图,柱状图,饼图,散点图等多种常见的图形。demo源码可通过如下链接下载https://github.com/ddanny/achartengine,或从我上传的资源中下载。
AChartEngine
控件支持下列图形(Java文件对应该图形示例程序):
折线图
-AverageTemperatureChart.java
-TrigonometricFunctionsChart.java
-MultipleTemperatureChart.java
-GeneratedChartDemo.java立方折线图
-AverageCubicTemperatureChart.java条形图/柱状图
-SalesStackedBarChart.java
-SalesBarChart.java
-GeneratedChartDemo.java范围条形图/柱状图
-TemperatureChart.java散点图
-TemperatureChart.java
-GeneratedChartDemo.java面积图
-GeneratedChartDemo.java时间图
-ProjectStatusChart.java
-SalesGrowthChart.java
-GeneratedChartDemo.java饼图
-BudgetPieChart.java圆环图
-BudgetDoughnutChart.java气泡图
-ProjectStatusBubbleChart.java拨号盘/压力表
-WeightDialChart.java组合图
-CombinedTemperatureChart.java
先看看该Demo的部分运行效果,图1示例了折线图的效果,图2示例了柱状图的效果,图3示例了抛物线的效果,图4是散点图,图5是饼图的效果,图6是权重图效果。。。
若要使用该控件,应先在工程中导入jar包:achartengine-xxx.jar,该jar包可以在我的资源中下载。
源代码分析:
demo的类的继承关系图如下所示:
从类图关系可以看出和代码,每个图形的启动需要继承抽象类AbstractDemoChart,并重写三个方法:getName,GetDesc,Execute。
下面以折线图的实现类AverageTemperatureChart为例,简单介绍实现绘图的步骤和方法:
AverageTemperatureChart.java代码如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
代码的getName和getDesc方法分别返回图形的名字和图形的描述,用于填充主Activity的ListView中的内容;execute方法返回一个Intent对象,在execute方法中需要实现四个步骤:
- 构建DataSet(图表或图形所需数据)
- 构建Render(该对象用于设置图表或图像属性)
- 设置Render(设置图标属性,如颜色,粗细,坐标,长度等)
- 通过ChartFactory.getXxxIntent(dataset, render, …)方法,将构建的DataSet和Render对象传入getXxxIntent方法,该方法返回的Intent用于启动位于achartengine-1.1.0.jar包下的org.achartengine.GraphicalActivity。而该demo的启动Activity是org.achartengine.chartdemo.demo.ChartDemo。
最后要注意的是,在AndroidManifest.xml中除了需要注册启动Activity——ChartDemo以及每个图形图表所绑定的Activity外,还需注册GraphicalActivity
- 第三方绘图控件 AChartEngine 浅析
- 第三方绘图控件 AChartEngine 浅析
- QT开发之第三方绘图控件
- android开发引入第三方Jar包---achartengine为例
- 第三方控件使用方法
- 第三方控件使用方法
- 安装第三方控件
- 什么是第三方控件
- WPF - 第三方控件
- silverlight第三方控件
- 第三方控件
- WPF - 第三方控件
- 第三方控件
- WPF - 第三方控件
- WPF - 第三方控件
- delphi 第三方控件
- 第三方控件选择
- CS第三方控件
- 2016/12/8学习工作总结
- c
- linux下面识别USB的四种方式
- 大数据的处理
- 集合
- 第三方绘图控件 AChartEngine 浅析
- 三角形的外接圆半径
- 30 leetcode - Search Insert Position
- Android USB Camera(2) : UVC协议分析
- 了解手机CPU
- [2016/12/8]happy number:application of Floyd's Cycle Detection Algorithm
- Billboard
- 封装继承txt
- 图片抖动的效果(修改后)