一、AChartEngine总体介绍

AChartEngine : 每个图表都需要一个数据集 (Dataset) 和 渲染器集合(Renderer);

-- 数据集 : 又由许多数据组成

-- 渲染器 : 也由不同的子渲染器组成

-- 获取Activity或组件 : 图表工厂 (ChartFactory) 通过调用数据集 (Dataset)和渲染器集合 (Renderer) 可以生成带图表的GraphicalView 或者GraphicalActivity

例如:图表工厂 (ChartFactory) 通过传入数据集 (Dataset)和渲染器集合 (Renderer) 的数据来创建一个折线图的intent.

Intent intent = ChartFactory.getLineChartIntent(context,dataset,renderer);

二、AChartEngine 相关类介绍

-- XYMultipleSeriesDataset : 数据集, 其中可以封装图表所需的数据,需要在这个数据集中加入 XYSeries

-- XYSeries : 属于图表数据集的一部分, 每个都代表了一个数据集合例如折线, 一个图表中可以有多条折线, 所有的数据放在一起就是数据集XYMultipleSeriesDataset ;

-- XYMultipleSeriesRenderer : 渲染器集合, 图表中多个曲线的渲染器;

-- XYSeriesRenderer : 单个曲线或单元的渲染器, 一个图表中可能有多条曲线或者柱状图等, 每个都需要一个渲染器, 所有的渲染器放在一起就是渲染器集合 XYMultipleSeriesRenderer;

三、 AChartEngine 主要代码解析

1. 曲线图 柱状图 图表数据集

(1) 针对 x y 轴数据都是 Double 的情况

相关类介绍 :

-- XYMultipleSeriesDataset 类 : 该类可以封装 曲线图 柱状图 等图表的数据集, 这些图表的共性是值都是由 x 和 y 数值组成的, 需要分别传入 x 轴数据 和 y 轴数据;

-- XYSeries 类 : 图表中有多个曲线, 该类封装单个曲线的集合,XYMultipleSeriesDataset 封装了多个 XYSeries;

需要准备的数据 :

-- 单组数据名称集合 : String[] titles, 单组数据名称 每条曲线可能有一个名称, 一个图表可能有多个曲线, 因此这里需要一个 标题数组;

-- x轴数据组集合 : List<double[]> xValues, x 轴数据集合, 其中每个数组都是一个 曲线的x轴数据, 整个 List 集合是多个曲线的数据;

-- y轴数据组集合 : List<double[]> yValues, y 轴数据集合, 整个 List 集合是多个曲线的 y 轴数据集合;

相关方法详解 :

-- 创建 XYMultipleSeriesDataset 对象 : 直接调用无参数的构造方法即可,XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();

-- 创建 XYSeries 对象 : 该对象是单条曲线数据, 可以设置 单条曲线标题, x 轴数据数组, y 轴数据数组,XYSeries series = new XYSeries(String titles, float scale);

-- 为单个曲线添加数据 : 即未 XYSeries 对象添加两个数组, 分别是 x 轴和 y 轴的数据,series.add(xV[k], yV[k]);

-- 将 XYSeries 对象添加到 XYMultipleSeriesDataset 对象中 :dataset.addSeries(series);

(2) x 轴是日期 y 轴是 Double

相关类介绍 :

-- XYMultipleSeriesDataset : 这种 日期-值 图, 使用的图表数据集也是该类;

-- TimeSeries : 这里就不同了, 单个曲线的数据中因为要封装 Date 数组, 因此要使用该类封装 Date[] 和 Double[] 数据;

需要准备的数据 :

-- String[] titles : 图表中有多个折线, 数组中每个元素都是一个折线的标题;

-- List<Date[]> xValues : List 集合中每个 Date[] 都是一条曲线的 x 轴数据;

-- List<double[]> yValues : List 集合中每个 double[] 都是一条曲线的 y 轴数据;

相关方法介绍 :

-- 创建单条曲线数据 TimeSeries 对象 :TimeSeries series = new TimeSeries(titles[i]), 参数是该条曲线的标题名称;

-- 设置 日期 和 值数组给 TimeSeries 对象 : series.add(xV[k], yV[k]);

-- 将 TimeSeries 对象设置给 XYMultipleSeriesDataset 对象 :dataset.addSeries(series);

2. 曲线图图表渲染器

(1) 曲线渲染

相关类介绍 :

-- XYMultipleSeriesRenderer : 曲线图整体渲染器, 其中封装了许多XYSeriesRenderer 单曲线渲染器;

-- XYSeriesRenderer : 单个曲线渲染器, 设置曲线的颜色 和 风格样式;

数据准备 :

-- int[] colors : 颜色集合, 每种曲线都要有一个颜色值;

-- PointStyle[] styles : 曲线样式集合, 每条曲线都有其绘制样式;

XYMultipleSeriesRenderer相关方法介绍 :

-- 设置 xy 轴标题字体大小 :setAxisTitleTextSize(int size);

-- 设置表格标题大小 :setChartTitleTextSize(int size);

-- 设置标签文字大小 :setLabelsTextSize(int size);

-- 设置说明文字大小 :setLegendTextSize(int size);

-- 设置点的大小 :setPointSize(int size);

-- 添加单曲线渲染器 :addSeriesRenderer(render);

XYSeriesRenderer 相关方法介绍 :

-- 创建对象 :XYSeriesRenderer r = new XYSeriesRenderer();

-- 设置单个曲线颜色 :r.setColor(colors[i]);

-- 设置单个曲线绘制风格 :r.setPointStyle(styles[i]);

(2) 坐标轴设置

渲染器参数设置 : 坐标轴渲染主要是对XYMultipleSeriesRenderer 进行一系列的参数设置, 都是调用的 XYMultipleSeriesRenderer 对象中的方法 ;

-- 设置曲线标题 :setChartTitle(String tittle);

-- 设置 x 轴标题 :setXTitle(String tittle);

-- 设置 y 轴标题 :setYTitle(String tittle);

-- 设置 x 轴最小值 :setXAxisMin(double);

-- 设置 x 轴最大值 :setXAxisMax(double);

-- 设置 y 轴最小值 :setYAxisMin(double);

-- 设置 y 轴最大值 :setYAxisMax(double);

-- 设置坐标轴颜色 :setAxesColor();

-- 设置标签颜色 :setLabelsColor();

3. 饼图数据集

(1) 单个饼图数据集

相关类介绍 :

-- CategorySeries : 饼图数据集;

相关方法介绍 :

-- 添加数据元素 :CategorySeries.add(String category, double value), 参数分别是 名称 和 值;

(2) 多饼图图表数据集

相关类介绍 :

-- MultipleCategorySeries : 多饼图图表数据集, 该类对象与单饼图图表数据集 CategorySeries 对象没有包含关系;

准备数据 :

-- 饼图每个元素名称 :List<String[]> titles, 其中集合中的数组就是一个饼图每个元素的集合;

-- 饼图每个元素的大小 : List<double[]> values, 其中的数组就是一个饼图每个元素的大小;

相关方法介绍 :

-- 创建多饼图数据集 : MultipleCategorySeries series = new MultipleCategorySeries(title), 传入图表的名称;

-- 添加一个饼图的数据 :series.add(tittle, titles.get(k), value), 第一个参数是单个饼图名称, 第二个参数是饼图元素名称字符串数组, 第三个是饼图元素大小 double[] 数组;

4. 饼图渲染器

相关类介绍 :

-- DefaultRenderer : 饼图渲染器, 单饼图 和 多饼图使用的渲染器都是同一个;

-- DefaultRenderer : 饼图单个元素渲染器, 一个饼图有多个该渲染器渲染, 整个图表有多组该渲染器;

数据准备 :

-- 饼图元素的颜色 :int[] colors, 将饼图中所有的颜色放在一个数组中, 每个元素都有一个颜色;

DefaultRenderer 类方法介绍 :

-- 构造方法 :DefaultRenderer renderer = new DefaultRenderer();

-- 设置标签文字大小 :setLabelsTextSize(int size);

-- 设置说明文字大小 :setLegendTextSize(int size);

-- 设置边距 :setMargins(new int[] { 20, 30, 15, 0 });

-- 添加 SimpleSeriesRenderer对象 到该渲染器集合 :addSeriesRenderer(r);

SimpleSeriesRenderer 方法 :

-- 构造函数 :SimpleSeriesRenderer r = new SimpleSeriesRenderer();

-- 设置颜色 :setColor(color);

5. 柱状图数据集

相关类介绍 :

-- XYMultipleSeriesDataset : 封装柱状图的数据, 其中可能有多个柱状图, 每个都封装了若干个CategorySeries 单个数据集对象;

-- CategorySeries : 柱状图图表中单个柱状图的数据, 可以被封装入 XYMultipleSeriesDataset 数据集中;

数据准备 :

-- 柱状图标题 :String[] titles, 由于一个柱状图图表中可能有多个柱状图, 因此需要一个字符串数组存放这些标题;

-- 柱状图值 :List<double[]> values, 集合中的每个数组都代表了一个柱状图的值;

CategorySeries方法介绍 :

-- 构造函数 :CategorySeries series = new CategorySeries(titles[i]), 传入的参数是柱状图的值;

-- 设置值大小 :series.add(double), 具体的值需要一个一个去设定;

-- 转换类型 :series.toXYSeries(), 只有转换成 XYSeries 对象, 才能加入到 XYMultipleSeriesDataset 对象中;

6. 柱状图渲染器

相关类介绍 :

-- XYMultipleSeriesRenderer : 柱状图渲染器集合, 与曲线图的渲染器是一样的, 其中封装了很多 SimpleSeriesRenderer 对象;

-- SimpleSeriesRenderer : 柱状图中的单个柱状图渲染器, 可以封装到 XYMultipleSeriesRenderer 对象中;

准备数据 :

-- 柱状图颜色 :int[] colors, 一个柱状图的图表中含有若干个柱状图, 每个柱状图都设定一个颜色;



更多相关文章

  1. SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
  2. 一句话锁定MySQL数据占用元凶
  3. 在cmd窗口中查询android的sqlite3数据库表之步骤
  4. Android:嵌入式关系型SQLite数据库、SQLiteOpenHelper、SQLiteDat
  5. Android数据存储之SharedPreferences
  6. [置顶] android Listview分批加载+自动加载(改进版)(附源码下载)
  7. Android学习笔记十五.使用ContentProvider实现数据共享(一)
  8. android通过C#的webservice与服务端进行数据通信(sqlserver)
  9. Android(安卓)ApiDemos示例解析(113):Views->Expandable Lists->

随机推荐

  1. Android+Junit单元测试1
  2. android 实现类似Iphone底部消息数量提示
  3. android JNI cocos2dx调用对话框
  4. Android 修改项目名称
  5. android AnimationDrawable类实现动画效
  6. 通话距离感应实现源码
  7. Andriod自动化测试
  8. Android ScrollView 中 TextView 多行显
  9. 深入理解LayoutInflater
  10. Android(安卓)权限列表permission说明