安卓图表引擎AChartEngine(二) - 示例源码概述和分析_第1页
安卓图表引擎AChartEngine(二) - 示例源码概述和分析_第2页
安卓图表引擎AChartEngine(二) - 示例源码概述和分析_第3页
安卓图表引擎AChartEngine(二) - 示例源码概述和分析_第4页
安卓图表引擎AChartEngine(二) - 示例源码概述和分析_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、首先看一下示例中类之间的关系:1. ChartDemo这个类是整个应用程序的入口,运行之后的效果显示一个list.2. IDemoChart接口,这个接口定义了三个方法,getName(返回值是listitem上显示的标题;getDesc(返回值是listitem上显示的描述内容.excute(context返回值是一个Intent,当点击listitem后跳转到此Intent.Table 1 AbstractChartDemo.javapackage com.crelead.plantrack2mobile_alpha1; import java.util.Date; import java

2、.util.List; import org.achartengine.chart.PointStyle; import org.achartengine.model.CategorySeries; import org.achartengine.model.MultipleCategorySeries; import org.achartengine.model.TimeSeries; import org.achartengine.model.XYMultipleSeriesDataset; import org.achartengine.model.XYSeries; import or

3、g.achartengine.renderer.DefaultRenderer; import org.achartengine.renderer.SimpleSeriesRenderer; import org.achartengine.renderer.XYMultipleSeriesRenderer; import org.achartengine.renderer.XYSeriesRenderer; public abstract class AbstractDemoChart implements IDemoChart /* * 构建 XYMultipleSeriesDataset.

4、 * * param titles 每个序列的图例 * param xValues X轴的坐标 * param yValues Y轴的坐标 * return XYMultipleSeriesDataset */ protected XYMultipleSeriesDataset buildDataset(String titles, List<double> xValues, List<double> yValues XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(; addXYSeries(d

5、ataset, titles, xValues, yValues, 0; return dataset; /向DataSet中添加序列.public void addXYSeries(XYMultipleSeriesDataset dataset, String titles, List<double> xValues, List<double> yValues, int scale int length = titles.length; for (int i = 0; i < length; i+ XYSeries series = new XYSeries(t

6、itlesi, scale; /这里注意与TimeSeries区别. double xV = xValues.get(i; double yV = yValues.get(i; int seriesLength = xV.length; for (int k = 0; k < seriesLength; k+ series.add(xVk, yVk; dataset.addSeries(series; /* * 构建XYMultipleSeriesRenderer. * * param colors 每个序列的颜色 * param styles 每个序列点的类型(可设置三角,圆点,菱形,

7、方块等多种 * return XYMultipleSeriesRenderer */ protected XYMultipleSeriesRenderer buildRenderer(int colors, PointStyle styles XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(; setRenderer(renderer, colors, styles; return renderer; protected void setRenderer(XYMultipleSeriesRenderer rend

8、erer, int colors, PointStyle styles /size size=3/整个图表属性设置 /->start renderer.setAxisTitleTextSize(16;/设置轴标题文字的大小 renderer.setChartTitleTextSize(40;/设置整个图表标题文字的大小 renderer.setLabelsTextSize(15;/设置轴刻度文字的大小 renderer.setLegendTextSize(15;/设置图例文字大小 renderer.setPointSize(5f;/设置点的大小(图上显示的点的大小和图例中点的大小都会被设

9、置 renderer.setMargins(new int 20, 30, 15, 20 ;/设置图表的外边框(上/左/下/右 /->end /以下代码设置没个序列的颜色. /->start int length = colors.length; for (int i = 0; i < length; i+ XYSeriesRenderer r = new XYSeriesRenderer(; r.setColor(colorsi;/设置颜色 r.setPointStyle(stylesi; renderer.addSeriesRenderer(r; /->end /*

10、 设置renderer的一些属性. * * param renderer 要设置的renderer * param title 图表标题 * param xTitle X轴标题 * param yTitle Y轴标题 * param xMin X轴最小值 * param xMax X轴最大值 * param yMin Y轴最小值 * param yMax Y轴最大值 * param axesColor X轴颜色 * param labelsColor Y轴颜色 */ protected void setChartSettings(XYMultipleSeriesRenderer rendere

11、r, String title, String xTitle, String yTitle, double xMin, double xMax, double yMin, double yMax, int axesColor, int labelsColor renderer.setChartTitle(title; renderer.setXTitle(xTitle; renderer.setYTitle(yTitle; renderer.setXAxisMin(xMin; renderer.setXAxisMax(xMax; renderer.setYAxisMin(yMin; rende

12、rer.setYAxisMax(yMax; renderer.setAxesColor(axesColor; renderer.setLabelsColor(labelsColor; /* 构建和时间有关的XYMultipleSeriesDataset,这个方法与buildDataset在参数上区别是需要List 作参数. * * param titles 序列图例 * param xValues X轴值 * param yValues Y轴值 * return XYMultipleSeriesDataset */ protected XYMultipleSeriesDataset build

13、DateDataset(String titles, List xValues, List<double> yValues XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(; int length = titles.length; for (int i = 0; i < length; i+ TimeSeries series = new TimeSeries(titlesi;/构建时间序列TimeSeries, Date xV = xValues.get(i; double yV = yValues

14、.get(i; int seriesLength = xV.length; for (int k = 0; k < seriesLength; k+ series.add(xVk, yVk; dataset.addSeries(series; return dataset; /* * 构建单个CategorySeries,可用于生成饼图,注意与buildMultipleCategoryDataset(构建圆环图相区别. * * param titles the series titles * param values the values * return the category se

15、ries */ protected CategorySeries buildCategoryDataset(String title, double values CategorySeries series = new CategorySeries(title; int k = 0; for (double value : values series.add("Project " + +k, value; return series; /size size=3 /* 构建MultipleCategorySeries,可用于构建圆环图(每个环是一个序列 * * param t

16、itles the series titles * param values the values * return the category series */ protected MultipleCategorySeries buildMultipleCategoryDataset(String title, List titles, List< double> values MultipleCategorySeries series = new MultipleCategorySeries(title; int k = 0; for (double value : value

17、s series.add(2007 + k + "", titles.get(k, value; k+; return series; /* * 构建DefaultRenderer. * * param colors 每个序列的颜色 * return DefaultRenderer */ protected DefaultRenderer buildCategoryRenderer(int colors DefaultRenderer renderer = new DefaultRenderer(; renderer.setLabelsTextSize(15; render

18、er.setLegendTextSize(15; renderer.setMargins(new int 20, 30, 15, 0 ; for (int color : colors SimpleSeriesRenderer r = new SimpleSeriesRenderer(; r.setColor(color; renderer.addSeriesRenderer(r; return renderer; /* 构建XYMultipleSeriesDataset,适用于柱状图. * * param titles 每中柱子序列的图列 * param values 柱子的高度值 * re

19、turn XYMultipleSeriesDataset */ protected XYMultipleSeriesDataset buildBarDataset(String titles, List<double> values XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(; int length = titles.length; for (int i = 0; i < length; i+ CategorySeries series = new CategorySeries(titlesi;

20、 double v = values.get(i; int seriesLength = v.length; for (int k = 0; k < seriesLength; k+ series.add(vk; dataset.addSeries(series.toXYSeries(; return dataset; /* 构建XYMultipleSeriesRenderer,适用于柱状图. * * param colors 每个序列的颜色 * return XYMultipleSeriesRenderer */ protected XYMultipleSeriesRenderer b

21、uildBarRenderer(int colors XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(; renderer.setAxisTitleTextSize(16; renderer.setChartTitleTextSize(20; renderer.setLabelsTextSize(15; renderer.setLegendTextSize(15; int length = colors.length; for (int i = 0; i < length; i+ SimpleSeriesR

22、enderer r = new SimpleSeriesRenderer(; r.setColor(colorsi; renderer.addSeriesRenderer(r; return renderer; 4. 其他的以*Chat结尾的类大都继承自AbstractDemoChart这个类实现了接口IDemoChart.我们可以重点看一下execute(context方法,分析之后发现这个方法中构建Intent的步骤大同小异,第一步构建dataset,第二步构建renderer,第三步调用ChartFactory.get*Intent(方法或ChartFactory.get*View(方法

23、,二者的区别在于一个返回Intent,这个intent可以启动一个特定的activity,另一个返回GraphicalView,对这个GraphicalView可以灵活设置也可以仅作为一部分显示在任何activity上.对于ChartFactory.get*Intent(上的参数activityTitle是指设置显示在activity上的标题.条形图static android.content.IntentgetBarChartIntent(android.content.Context context,XYMultipleSeriesDataset dataset, XYMultipleSe

24、riesRenderer renderer,BarChart.Type type条形图static android.content.IntentgetBarChartIntent(android.content.Context context,XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer,BarChart.Type type, java.lang.String activityTitle条形图static GraphicalViewgetBarChartView(android.content.Contex

25、t context,XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer,BarChart.Typetype气泡图static android.content.IntentgetBubbleChartIntent(android.content.Context context,XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer气泡图static android.content.IntentgetBubbleChartIntent(an

26、droid.content.Context context,XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, java.lang.String activityTitle气泡图static GraphicalViewgetBubbleChartView(android.content.Context context,XYMultipleSeriesDataset dataset, XYMultipleSeriesRendererrenderer组合图static android.content.Intentg

27、etCombinedXYChartIntent(android.content.Context context,XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, java.lang.String types, java.lang.String activityTitle组合图static GraphicalViewgetCombinedXYChartView(android.content.Context context,XYMultipleSeriesDataset dataset, XYMultipleS

28、eriesRenderer renderer, java.lang.String types立方折线图static GraphicalViewgetCubeLineChartView(android.content.Context context,XYMultipleSeriesDatasetdataset, XYMultipleSeriesRendererrenderer, float smoothness立方折线图static android.content.IntentgetCubicLineChartIntent(android.content.Context context,XYMu

29、ltipleSeriesDataset dataset, XYMultipleSeriesRendererrenderer, float smoothness立方折线图static android.content.IntentgetCubicLineChartIntent(android.content.Context context,XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, float smoothness, java.lang.String activityTitle拨号盘static andro

30、id.content.IntentgetDialChartIntent(android.content.Context context,CategorySeries dataset, DialRenderer renderer, java.lang.String activityTitle拨号盘static GraphicalViewgetDialChartView(android.content.Context context, CategorySeries dataset,DialRenderer renderer圆环图static android.content.IntentgetDou

31、ghnutChartIntent(android.content.Context context,MultipleCategorySeries dataset, DefaultRenderer renderer, java.lang.String activityTitle圆环图static GraphicalViewgetDoughnutChartView(android.content.Context context,MultipleCategorySeries dataset, DefaultRenderer renderer圆环图static android.content.Inten

32、tgetLineChartIntent(android.content.Context context,XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer折线图static android.content.IntentgetLineChartIntent(android.content.Context context,XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, java.lang.String activityTitle折

33、线图static GraphicalViewgetLineChartView(android.content.Context context,XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer饼图static android.content.IntentgetPieChartIntent(android.content.Context context, CategorySeries dataset,DefaultRenderer renderer, java.lang.String activityTitle饼图

34、static GraphicalViewgetPieChartView(android.content.Context context, CategorySeries dataset,DefaultRenderer renderer范围条形图static android.content.IntentgetRangeBarChartIntent(android.content.Context context,XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer,BarChart.Type type, java.lang.String activityTitle范围条形图static GraphicalViewgetRangeBarChar

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论