1. MPAndroidChart 

MPAndroidChart 是 Android 系统上一款开源的图表库。目前提供线图和饼图,支持选择、缩放和拖放。

一个可以拖动缩放的图表库,包含曲线图、直方图、饼状图,其中直方图支持3d效果。

该库的可扩展性强,代码相对规范,最近一次更新有很大改进,如果不喜欢AChartEngine的过于复杂可以考虑在此库的基础上开发自己的图表类。

2. MPAndroidChart 核心特性

  • 轴缩放(触摸手势,轴分开或两指缩放)

  • 拖动(触摸手势)

  • 手指画(画值为图的触摸手势)

  • 值的高亮显示(与可定制的弹出视图)

  • 图表保存到SD卡(如图像,或作为。txt文件)

  • 读取txt文件图表数据。

  • 预定义的颜色模板

  • 图例(自动生成的,可定制的)

  • 标签(X和Y轴,可定制的)

  • 动画(建立动画,在X和Y轴)

  • 限制线(提供额外的信息,最大值,……)

  • 完全可定制的(绘画颜料,字体,颜色,背景,图例,手势,虚线。

3. MPAndroidChart 使用例子:

以piechart(饼状图)为例介绍使用方法:

 (1)在xml布局文件之中:

  1. <com.github.mikephil.charting.charts.PieChart
  2. android:id="@+id/spread_pie_chart"
  3. android:layout_width="match_parent"
  4. android:layout_height="320dip" />

(2)Activity中的初始化:

  1. ColorTemplate mCt;
  2. mCt = new ColorTemplate();
  3. mCt.addDataSetColors(ColorTemplate.PASTEL_COLORS, this);
  4. mChart = (PieChart) headView.findViewById(R.id.spread_pie_chart);
  5. mChart.setColorTemplate(mCt);
  6. mChart.setDescription("");
  7. mChart.setHoleRadius(30f);
  8. mChart.setTransparentCircleRadius(0f);
  9. mChart.setCenterTextSize(18f);
  10. mChart.setDrawXValues(true);
  11. mChart.setUsePercentValues(true);
  12. mChart.setDrawLegend(false);
  13. // space between slices
  14. mChart.setSliceSpace(1f);
  15. mChart.setDrawHoleEnabled(false);
  16. mChart.setTouchEnabled(false);

(3)数据填充

  1. ArrayList<Entry> yVals = new ArrayList<Entry>();
  2. ArrayList<String> xVals = new ArrayList<String>();
  3. for (int i = 0; i < listDatas.size(); i++) {
  4. yVals.add(new Entry((float)listDatas.get(i).getProvinceCount(), i));
  5. xVals.add(listDatas.get(i).getProvinceName());
  6. }
  7. DataSet set1 = new DataSet(yVals, "Content");
  8. ArrayList<DataSet> dataSets = new ArrayList<DataSet>();
  9. dataSets.add(set1);
  10. ChartData data = new ChartData(xVals, dataSets);
  11. mChart.setData(data);

其中listData为自己项目中的数据源。

4.  MPAndroidChart开源库地址:

https://github.com/PhilJay/MPAndroidChart

1. Android 系统上一款开源的图表库的更多相关文章

  1. 理解WebKit和Chromium: 调试Android系统上的Chromium

    转载请注明原文地址:http://blog.csdn.net/milado_nju 1. Android上的调试技术 在Android系统上,开发人员能够使用两种不同的语言来开发应用程序,一种是Jav ...

  2. Android系统上如何实现easyconfig(airkiss)

    刚买回来一个智能音箱和博联,需要给音箱和博联配置联网,音箱需要先打开蓝牙,然后在手机app中填写wifi的ssid和密码,通过蓝牙发送到音箱,音箱收到后连接到wifi. 博联就比较奇怪,进入联网模式以 ...

  3. 转 让Python在Android系统上飞一会儿

    让Python在Android系统上飞一会儿 地址: http://blog.csdn.net/ccwwff/article/details/6208260

  4. 深入学习Android系统上mount命令的使用

    博客链接:http://blog.csdn.net/qq1084283172/article/details/52493227 在Android系统的预装apk病毒和elf病毒的清除时,经常需要先获取 ...

  5. 【Android】让Python在Android系统上飞一会儿

    第一节 在手机上配置Python运行环境 1.下载和安装 Scripting Layer for Android (SL4A) Scripting Layer for Android (SL4A) 是 ...

  6. Android驱动入门-在Android系统上运行JAVA程序

    在linux上运行java程序,直接用javac编译,再用java运行就行了.但是在Android上,由于虚拟机和pc端的不同,所以操作方法也是不一样的. 如果想在Android上运行Hello wo ...

  7. 运行在 Android 系统上的完整 Linux -- Termux

    Termux  可以在安卓系统上搭建一个完整的linux 环境,类似于 cygwin 并非linux 虚拟机,整个安装包只有 几百KB 刚开始觉得这东西的命令行很难用,看了官方介绍后才发现它原来有许多 ...

  8. 最新开源JavaScript 图表库 ECharts推荐

    ECharts是一款由百度前端技术部开发的,基于Javascript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表. ECharts 提供大量常用的数据可视化图表,底层基于Z ...

  9. [Android游戏开发]八款开源 Android 游戏引擎 (巨好的资源)

    初学Android游戏开发的朋友,往往会显得有些无所适从,他们常常不知道该从何处入手,每当遇到自己无法解决的难题时,又往往会一边羡慕于 iPhone下有诸如Cocos2d-iphone之类的免费游戏引 ...

随机推荐

  1. Java 从单核到多核的多线程(并发)

    JAVA 并发编程       最初计算机是单任务的,然后发展到多任务,接着出现多线程并行,同时计算机也从单cpu进入到多cpu.如下图: 多任务:其实就是利用操作系统时间片轮转使用的原理.操作系统通 ...

  2. 一条scan查询把HBase集群干趴下

    最近在给公司搭建CDH集群,在测试集群性能时,写了一条简单的scan查询语句竟然把hbase集群的所有regionserver干趴下了.这让我云里雾里的飘飘然. 背景介绍 CDH集群,2台主节点.3台 ...

  3. RabbitMQ>Erlang machine stopped instantly (distribution name conflict?). The service is not restarted as OnFail is set to ignore.-报错解决方案 原来是NNND。。。

    >Erlang machine stopped instantly (distribution name conflict?). The service is not restarted as ...

  4. Uploadify 3.2使用

    我今天介绍的Uploadify 3.2的,以前旧版本的并不适用,说到这个,我就火大,我也是第一次使用,也百度了下使用手册,结果坑爹的那些手册都是旧版的,新版的Uploadify接口和旧版的差太多了.废 ...

  5. Delphi使用FindClass实现动态建立对像(有点像反射)

    相关资料:http://www.blogjava.net/nokiaguy/archive/2008/05/10/199739.html { http://www.blogjava.net/nokia ...

  6. pandas.DataFrame 中save方法

    In [5]: frame.save('frame_pickle') ----------------------------------------------------------------- ...

  7. POJ 3169 Layout (差分约束系统)

    Layout 题目链接: Rhttp://acm.hust.edu.cn/vjudge/contest/122685#problem/S Description Like everyone else, ...

  8. [iOS微博项目 - 2.0] - OAuth授权3步

    A.概念      OAUTH协议为用户资源的授权提供了一个安全的.开放而又简易的标准.与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用 ...

  9. 转载 SQL Server中索引管理之六大铁律

    转载原地址 http://jingyan.baidu.com/article/48a42057c03bd7a924250429.html 索引是以表列为基础的数据库对象.索引中保存着表中排序的索引列, ...

  10. POJ 2828 Buy Tickets (线段树 or 树状数组+二分)

    题目链接:http://poj.org/problem?id=2828 题意就是给你n个人,然后每个人按顺序插队,问你最终的顺序是怎么样的. 反过来做就很容易了,从最后一个人开始推,最后一个人位置很容 ...