http://www.eoeandroid.com/thread-548233-1-6.html

最近公司项目中要用到折线图,状态类型的图标要用到折线图,柱形图等,并且能够动态显示,在网上找了许多demo,基本上都是写死的数据,下面先让我们看看AChartEngine的介绍

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

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

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

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

/

那么分析完毕,其实就主要用到两大类,一个是数据集,一个是渲染器

AChartEngine是为Android应用程序的图表库。它目前支持以下图表类型:
线图
面积图
散点图
时间图
条形图
饼图
气泡图
圆环图
范围(高至低)条形图
拨号图/表压
合并(行,立行,散点图,酒吧,酒吧的范围,泡沫的任意组合)图
立体折线图

项目中不是应用activity来现实的,这样会导致UI缓慢,我们通过获取组件 ,向组件渲染的方式,代码如下:

如何把折线图嵌入到界面某个位置?
   可以利用ChartFactory类中很多的getXxxxView方法返回一个装着折线图的GraphicalView,然后通过位置View.addView(GraphicalView)之类的方法把折线图添加到你指定的控件处就行了。

如果项目中的X轴需要有文字,这点怎么做到呢?查了一下API,API如下
  
addXTextLabel
public void addXTextLabel(double x, java.lang.String text)
Adds a new text label for the specified X axis value.
Parameters:
x - the X axis value
text - the text label

(在工作中查API是个很好地习惯,英语不好也得逼自己一把,去看英文文档)
知道怎么用了,好,我们现在先实验一下,mRenderer.setXLabels(0);
                mRenderer.addXTextLabel(1, "国贸");
                mRenderer.addXTextLabel(2, "计算机");
                mRenderer.addXTextLabel(3, "音乐"); 
OK,让我们run一下。。。。
成功
因为项目中要求是从服务器获取坐标值,客户端做显示,根据服务器给的信息,加以判断,是折线图,还是饼状图的显示
现在发现有非常重要的两种数据,一个是坐标值,比如说 折线图 :X轴坐标,Y轴坐标,还有就是X轴的文字的显示

后期会写一个工具类,用于从服务器获取坐标值等,然后转化为所需要的数组,楼主会将总结及时更新 希望大家给予支持,如果代码中有需要修改的地方或者大家有更好的想法,欢迎提出
      

<ignore_js_op>

折线图 饼图的研究demo.zip

2.78 MB, 下载次数: 26

AChartEngine 安卓折线图 柱形图等利器的更多相关文章

  1. Android AChartEngine 去除折线图黑边

    通常使用AChartEngine画出的折线图,如果背景不是黑色,则会在折线图的坐标轴旁边出现黑边,如图所示: 试了好多设置,最后终于发现,去除黑边的设置是: mRenderer.setMarginsC ...

  2. Android图表引擎AChartEngine之折线图使用

    最近在帮老师做一个课题,其中app端需要显示折线图以便直观地看数据波动,上网查了些资料后发现了这款图标引擎,另外感谢李坤老师的博客,帮助很大. 废话不多说,下面写代码. 一.AChartEngine是 ...

  3. achartengine之折线图

    问题在文章的最后,大致说来就是折线图,如果点的个数大于3个的时候,不是所有的点都显示对应的值的,这是为什么呢,本来以为是小问题,但两天了还没找到原因) 将前两天的折线图代码做了小量修改,形成一个类似于 ...

  4. android使用achartengine 实现折线图

    折线图的实现分为下边几个步骤: 1.第一步:数据的准备 XYMultipleSeriesDataset mDataset = new XYMultipleSeriesDataset(); XYSeri ...

  5. highcharts折线图-柱形图等

    https://www.highcharts.com.cn/demo/highcharts/line-basic

  6. AChartEngine折线图实例

    最近做项目要用到图表,在网上找相关的解决方案找了很久,搜到最多的就是这个框架,所以就开始研究下怎么使用,首先研究的就是折线图,如是做了一个实例. AChartEngine下载地址:http://cod ...

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

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

  8. 安卓图表引擎AChartEngine(四) - 源码示例 嵌入Acitivity中的折线图

    前面几篇博客中都是调用ChartFactory.get***Intent()方法,本节讲的内容调用ChartFactory.get***View()方法,这个方法调用的结果可以嵌入到任何一个Activ ...

  9. Android绘图机制(四)——使用HelloCharts开源框架搭建一系列炫酷图表,柱形图,折线图,饼状图和动画特效,抽丝剥茧带你认识图表之美

    Android绘图机制(四)--使用HelloCharts开源框架搭建一系列炫酷图表,柱形图,折线图,饼状图和动画特效,抽丝剥茧带你认识图表之美 这里为什么不继续把自定义View写下去呢,因为最近项目 ...

随机推荐

  1. 捉襟见肘之UIView中contentMode属性

    UIView.h @property(nonatomic) UIViewContentMode contentMode; // default is UIViewContentModeScaleToF ...

  2. 开发板ping不通主机和虚拟机的看过来(转载)!

    前几天在做uboot下用tftp下载文件到开发板的实验时,为了能解决开发板ping不通主机和虚拟机的问题,可谓绞尽脑汁,正所谓久病成医,虽然为了这一小问题废了我那么长时间,但我在解决问题的同时也学到了 ...

  3. C# Get/Post 模拟提交

    public static string GetPage(string url, string encoding) { PublicVariables.NetworkConnection = fals ...

  4. h5移动端滑动的细节

    1.获取手指滑动的长度: var hasTouch = 'ontouchstart' in window && !isTouchPad, _start:function(e){ var ...

  5. Python + OpenCV2 系列:1 - 配置

    Python+OpenCV2+Eclipse+Windos 8.1(32bits): 最初的目的是做图像处理,opencv强大的社区支持,让我想从matlab转到opencv框架下进行试验,而Pyth ...

  6. kali 2.0源更新

    摘自网址: 修改更新源sources.list,提高软件下载安装速度(提供Kali 2.0 更新源) - 月黑风寒 - 博客园http://www.cnblogs.com/webyihui/p/485 ...

  7. Linux下的压缩解压缩命令详解

    linux zip命令zip -r myfile.zip ./*将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件. 2.unzipunzip -o - ...

  8. MVC缓存OutPutCache学习笔记 (二) 缓存及时化VaryByCustom

    <MVC缓存OutPutCache学习笔记 (一) 参数配置> 本篇来介绍如何使用 VaryByCustom参数来实现缓存的及时化.. 根据数据改变来及时使客户端缓存过期并更新.. 首先更 ...

  9. 浅谈T-SQL中的派生表和CTE

    引言 表表达式是一种命名的查询表达式,代表一个有效的关系表.MSSQL支持4种类型的表表达式,它们分别是:派生表.公用表表达式(CTE).视图以及内联表值函数.表表达式并不是物理上真实存在的对象,它们 ...

  10. javascript取一周的日期

    上代码: <script> var today = new Date(); for (var i = 0; i < 7; i++) { today.setDate(today.get ...