![安卓图表引擎AChartEngine示例源码概述和分析_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/aa5bdbe6-f809-4a9c-930c-97f731471469/aa5bdbe6-f809-4a9c-930c-97f7314714691.gif)
![安卓图表引擎AChartEngine示例源码概述和分析_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/aa5bdbe6-f809-4a9c-930c-97f731471469/aa5bdbe6-f809-4a9c-930c-97f7314714692.gif)
![安卓图表引擎AChartEngine示例源码概述和分析_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/aa5bdbe6-f809-4a9c-930c-97f731471469/aa5bdbe6-f809-4a9c-930c-97f7314714693.gif)
![安卓图表引擎AChartEngine示例源码概述和分析_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/aa5bdbe6-f809-4a9c-930c-97f731471469/aa5bdbe6-f809-4a9c-930c-97f7314714694.gif)
![安卓图表引擎AChartEngine示例源码概述和分析_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/aa5bdbe6-f809-4a9c-930c-97f731471469/aa5bdbe6-f809-4a9c-930c-97f7314714695.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、安卓图表引擎AChartEngine(二 - 示例源码概述和分析 首先看一下示例中类之间的关系:1. ChartDemo这个类是整个应用程序的入口,运行之后的效果显示一个list.2. IDemoChart接口,这个接口定义了三个方法,getName(返回值是listitem上显示的标题;getDesc(返回值是listitem上显示的描述内容.excute(context返回值是一个Intent,当点击listitem后跳转到此Intent.3. AbstractDemoChart类是一个抽象类,实现接口IDemoChart接口,这个类中封装了构建DataSet
2、和renderer的方法,目的快速构建我们的dataset和renderer.这个类具体提供了哪些方法呢?见下图.至于为什么要进行这样的封装看完4中ChartFactory.get*Intent(方法的参数类型后您就明白了.AbstractChartDemo.java: java view plaincopy1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. public abstract class Abstract
3、DemoChart implements IDemoChart 18. 19. /* 20. * 构建 XYMultipleSeriesDataset. 21. * 22. * param titles 每个序列的图例 23. * param
4、 xValues X轴的坐标 24. * param yValues Y轴的坐标 25. * return XYMultipleSeriesDataset 26. */ 27. protected XYMultipleSeriesDataset buildDataset(String titles, Li
5、st xValues, 28. List yValues 29. XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(; 30. addXYSeries(dataset, titles, xVa
6、lues, yValues, 0; 31. return dataset; 32. 33. 34. /向DataSet中添加序列. 35. public void addXYSeries(XYMultipleSeriesDataset dataset, String
7、60;titles, List xValues, 36. List yValues, int scale 37. int length = titles.length; 38. for (int i = 0; i
8、160;< length; i+ 39. XYSeries series = new XYSeries(titlesi, scale; /这里注意与TimeSeries区别. 40. double xV = xValues.get(i; 41.
9、160; double yV = yValues.get(i; 42. int seriesLength = xV.length; 43. for (int k = 0; k < seriesLength; k+
10、0; 44. series.add(xVk, yVk; 45. 46. dataset.addSeries(series; 47. 48.
11、49. 50. /* 51. * 构建XYMultipleSeriesRenderer. 52. * 53. * param colors 每个序列的颜色 54. * param styles 每个序列点的类型(可设置三角,圆点,菱形,方块等多种 55.
12、0; * return XYMultipleSeriesRenderer 56. */ 57. protected XYMultipleSeriesRenderer buildRenderer(int colors, PointStyle styles 58. XYMultipleSeriesRenderer renderer
13、0;= new XYMultipleSeriesRenderer(; 59. setRenderer(renderer, colors, styles; 60. return renderer; 61. 62. 63. protected void setRenderer
14、(XYMultipleSeriesRenderer renderer, int colors, PointStyle styles 64. /整个图表属性设置 65. /->start 66. renderer.setAxisTitleTextSize(16;/设置轴标题文字的大小 67.
15、0; renderer.setChartTitleTextSize(40;/设置整个图表标题文字的大小 68. renderer.setLabelsTextSize(15;/设置轴刻度文字的大小 69. renderer.setLegendTextSize(15;/设置图例文字大小 70. renderer.setPointSize(5f;/设置点的大小
16、(图上显示的点的大小和图例中点的大小都会被设置 71. renderer.setMargins(new int 20, 30, 15, 20 /设置图表的外边框(上/左/下/右 72. /->end 73. 74. /以下代码设置没个序列的
17、颜色. 75. /->start 76. int length = colors.length; 77. for (int i = 0; i < length; i+ 78.
18、; XYSeriesRenderer r = new XYSeriesRenderer(; 79. r.setColor(colorsi;/设置颜色 80. r.setPointStyle(stylesi; 81. renderer.addSeriesRenderer
19、(r; 82. 83. /->end 84. 85. 86. /* 87. * 设置renderer的一些属性. 88. * 89. * param re
20、nderer 要设置的renderer 90. * param title 图表标题 91. * param xTitle X轴标题 92. * param yTitle Y轴标题 93. * param xMin X轴最小值 94. *&
21、#160;param xMax X轴最大值 95. * param yMin Y轴最小值 96. * param yMax Y轴最大值 97. * param axesColor X轴颜色 98. * param labelsColor Y轴颜色 99.
22、; */ 100. protected void setChartSettings(XYMultipleSeriesRenderer renderer, String title, String xTitle, 101. String yTitle, double xMin, double xMax, do
23、uble yMin, double yMax, int axesColor, 102. int labelsColor 103. renderer.setChartTitle(title; 104. renderer.setXTitle(xTitle; 105.
24、0; renderer.setYTitle(yTitle; 106. renderer.setXAxisMin(xMin; 107. renderer.setXAxisMax(xMax; 108. renderer.setYAxisMin(yMin; 109. renderer.set
25、YAxisMax(yMax; 110. renderer.setAxesColor(axesColor; 111. renderer.setLabelsColor(labelsColor; 112. 113. 114. /* 115. * 构建和时间有关的XYMultipleSerie
26、sDataset,这个方法与buildDataset在参数上区别是需要List 作参数. 116. * 117. * param titles 序列图例 118. * param xValues X轴值 119. * param yValues Y轴值 120. *&
27、#160;return XYMultipleSeriesDataset 121. */ 122. protected XYMultipleSeriesDataset buildDateDataset(String titles, List xValues, 123. List yValues 124.
28、 XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(; 125. int length = titles.length; 126. for (int i = 0; i < length;
29、60;i+ 127. TimeSeries series = new TimeSeries(titlesi;/构建时间序列TimeSeries, 128. Date xV = xValues.get(i; 129. double
30、0;yV = yValues.get(i; 130. int seriesLength = xV.length; 131. for (int k = 0; k < seriesLength; k+ 132.
31、; series.add(xVk, yVk; 133. 134. dataset.addSeries(series; 135. 136. return dataset;
32、;137. 138. 139. /* 140. * 构建单个CategorySeries,可用于生成饼图,注意与buildMultipleCategoryDataset(构建圆环图相区别. 141. * 142. * param titles the series titles 14
33、3. * param values the values 144. * return the category series 145. */ 146. protected CategorySeries buildCategoryDataset(String title, double value
34、s 147. CategorySeries series = new CategorySeries(title; 148. int k = 0; 149. for (double value : values 150. &
35、#160; series.add("Project " + +k, value; 151. 152. 153. return series; 154. 155. 156. /* 157. &
36、#160; * 构建MultipleCategorySeries,可用于构建圆环图(每个环是一个序列 158. * 159. * param titles the series titles 160. * param values the values 161. * re
37、turn the category series 162. */ 163. protected MultipleCategorySeries buildMultipleCategoryDataset(String title, 164. List titles, List values
38、; 165. MultipleCategorySeries series = new MultipleCategorySeries(title; 166. int k = 0; 167. for (double value : values 168.
39、160; series.add(2007 + k + "", titles.get(k, value; 169. k+; 170. 171. return series; 172.
40、 173. 174. /* 175. * 构建DefaultRenderer. 176. * 177. * param colors 每个序列的颜色 178. * return DefaultRenderer 179. */
41、160; 180. protected DefaultRenderer buildCategoryRenderer(int colors 181. DefaultRenderer renderer = new DefaultRenderer(; 182. renderer.setLabelsTextSize(15; 18
42、3. renderer.setLegendTextSize(15; 184. renderer.setMargins(new int 20, 30, 15, 0 185. for (int color : colors 186.
43、; SimpleSeriesRenderer r = new SimpleSeriesRenderer(; 187. r.setColor(color; 188. renderer.addSeriesRenderer(r; 189. 190.
44、 return renderer; 191. 192. 193. /* 194. * 构建XYMultipleSeriesDataset,适用于柱状图. 195. * 196. * param titles 每中柱子序列的图列
45、;197. * param values 柱子的高度值 198. * return XYMultipleSeriesDataset 199. */ 200. protected XYMultipleSeriesDataset buildBarDataset(String titles, List values &
46、#160; 201. XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(; 202. int length = titles.length; 203. for (int i = 0; i <
47、 length; i+ 204. CategorySeries series = new CategorySeries(titlesi; 205. double v = values.get(i; 206. int&
48、#160;seriesLength = v.length; 207. for (int k = 0; k < seriesLength; k+ 208. series.add(vk; 209.
49、60; 210. dataset.addSeries(series.toXYSeries(; 211. 212. return dataset; 213. 214. 215. /* 216.
50、; * 构建XYMultipleSeriesRenderer,适用于柱状图. 217. * 218. * param colors 每个序列的颜色 219. * return XYMultipleSeriesRenderer 220. */ 221. protected XYM
51、ultipleSeriesRenderer buildBarRenderer(int colors 222. XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(; 223. renderer.setAxisTitleTextSize(16; 224.
52、; renderer.setChartTitleTextSize(20; 225. renderer.setLabelsTextSize(15; 226. renderer.setLegendTextSize(15; 227. int length = colors.length; 228.
53、; for (int i = 0; i < length; i+ 229. SimpleSeriesRenderer r = new SimpleSeriesRenderer(; 230. r.setColor(colorsi; 231. &
54、#160; renderer.addSeriesRenderer(r; 232. 233. return renderer; 234. 235. 236. 4. 其他的以*Chat结尾的类大都继承自AbstractDemoChart这个类实现了接口IDemoC
55、hart.我们可以重点看一下execute(context方法,分析之后发现这个方法中构建Intent的步骤大同小异,第一步构建dataset,第二步构建renderer,第三步调用ChartFactory.get*Intent(方法或ChartFactory.get*View(方法,二者的区别在于一个返回Intent,这个intent可以启动一个特定的activity,另一个返回GraphicalView,对这个GraphicalView可以灵活设置也可以仅作为一部分显示在任何activity上.对于ChartFactory.get*Intent(上的参数activityTitle是指设置显
56、示在activity上的标题.条形图static android.content.IntentgetBarChartIntent(android.content.Context context,XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer,BarChart.Type type 条形图static android.content.IntentgetBarChartIntent(android.content.Context
57、0;context,XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer,BarChart.Type type, java.lang.String activityTitle 条形图static GraphicalViewgetBarChartView(android.content.Context context,XYMultipleSeriesDataset dataset, XYMultipleSeriesRe
58、nderer renderer,BarChart.Type type 气泡图static android.content.IntentgetBubbleChartIntent(android.content.Context context,XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer 气泡图static android.content.IntentgetBubbleChartIntent(android.co
59、ntent.Context context,XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, java.lang.String activityTitle p 气泡图static GraphicalViewgetBubbleChartView(android.content.Context context,XYMultipleSeriesDataset dataset, XYMultipleSeriesRend
60、erer renderer p 组合图static android.content.IntentgetCombinedXYChartIntent(android.content.Context context,XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, java.lang.String types, java.lang.String activityTitle p 组合图static Graph
61、icalViewgetCombinedXYChartView(android.content.Context context,XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, java.lang.String types p 立方折线图static GraphicalViewgetCubeLineChartView(android.content.Context context,XYMultipleSeriesDataset
62、60;dataset, XYMultipleSeriesRenderer renderer, float smoothness p 立方折线图static android.content.IntentgetCubicLineChartIntent(android.content.Context context,XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, float smoothness p 立方
63、折线图static android.content.IntentgetCubicLineChartIntent(android.content.Context context,XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, float smoothness, java.lang.String activityTitle p 拨号盘static android.content.IntentgetDialChartInte
64、nt(android.content.Context context,CategorySeries dataset, DialRenderer renderer, java.lang.String activityTitle p 拨号盘static GraphicalViewgetDialChartView(android.content.Context context, CategorySeries dataset,DialRenderer renderer p 圆环图st
65、atic android.content.IntentgetDoughnutChartIntent(android.content.Context context,MultipleCategorySeries dataset, DefaultRenderer renderer, java.lang.String activityTitle p 圆环图static GraphicalViewgetDoughnutChartView(android.content.Context context,Multip
66、leCategorySeries dataset, DefaultRenderer renderer p 圆环图static android.content.IntentgetLineChartIntent(android.content.Context context,XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer p 折线图static android.content.IntentgetLineChartIntent(android.content.Context context,XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, java.lang.String activityTitle p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《专利权基础》课件
- 《看动作猜词语》课件
- 《合理使用购物袋》课件
- 《CT检查与诊断入门》课件
- 《IIR滤波器设计》课件
- 七夕营销攻略模板
- 重阳节的传承与影响模板
- 医保行业新员工培训模板
- 银行信用卡 申请书
- 筹建药店申请书
- 【《智慧城市建设中电子政务建设问题及完善策略一以泸州市为例》9000字(论文)】
- IPO项目尽职调查清单(详细)
- ETL开发工程师招聘面试题及回答建议2025年
- 肝硬化肝性脑病诊疗指南(2024年版)解读
- 国企关于违反“三重一大”决策制度责任追究办法
- CRF病例报告表模板
- 四年级数学(上)计算题专项练习及答案
- 《会展服务与管理》教学大纲
- 虚拟试妆镜技术应用指南
- 九上下册物理人教版九年级物理全册第十九章《生活用电》第3节《安全用电》课件(42张)公开课教案
- 2024年中国不锈钢炒锅市场调查研究报告
评论
0/150
提交评论