Android MPAndroidChart开源图表库之饼状图的代码

MPAndroidChart是一款基于Android的开源图表库,MPAndroidChart不仅可以在Android设备上绘制各种统计图表,而且可以对图表进行拖动和缩放操作,应用起来非常灵活。MPAndroidChart同样拥有常用的图表类型:线型图、饼图、柱状图和散点图。

GitHub地址

下面主要实现以下饼状图:

1.从上面的地址中下载最新mpandroidchartlibrary-2-0-8.jar包, 然后copy到项目的libs中;

2.定义xml文件;

3.主要Java逻辑代码如下,注释已经都添加上了。

package com.jackie.mpandroidpiechart;
import java.util.ArrayList;
import com.github.mikephil.charting.charts.PieChart;
import com.github.mikephil.charting.components.Legend;
import com.github.mikephil.charting.components.Legend.LegendPosition;
import com.github.mikephil.charting.data.Entry;
import com.github.mikephil.charting.data.PieData;
import com.github.mikephil.charting.data.PieDataSet;
import android.support.v7.app.ActionBarActivity;
import android.graphics.Color;
import android.os.Bundle;
import android.util.DisplayMetrics;
public class MainActivity extends ActionBarActivity {
 private PieChart mChart;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 mChart = (PieChart) findViewById(R.id.spread_pie_chart);
 PieData mPieData = getPieData(4, 100);
 showChart(mChart, mPieData);
 }
 private void showChart(PieChart pieChart, PieData pieData) {
 pieChart.setHoleColorTransparent(true);
 pieChart.setHoleRadius(60f); //半径
 pieChart.setTransparentCircleRadius(64f); // 半透明圈
 //pieChart.setHoleRadius(0) //实心圆
 pieChart.setDescription("测试饼状图");
 // mChart.setDrawYValues(true);
 pieChart.setDrawCenterText(true); //饼状图中间可以添加文字
 pieChart.setDrawHoleEnabled(true);
 pieChart.setRotationAngle(90); // 初始旋转角度
 // draws the corresponding description value into the slice
 // mChart.setDrawXValues(true);
 // enable rotation of the chart by touch
 pieChart.setRotationEnabled(true); // 可以手动旋转
 // display percentage values
 pieChart.setUsePercentValues(true); //显示成百分比
 // mChart.setUnit(" €");
 // mChart.setDrawUnitsInChart(true);
 // add a selection listener
// mChart.setOnChartValueSelectedListener(this);
 // mChart.setTouchEnabled(false);
// mChart.setOnAnimationListener(this);
 pieChart.setCenterText("Quarterly Revenue"); //饼状图中间的文字
 //设置数据
 pieChart.setData(pieData);
 // undo all highlights
// pieChart.highlightValues(null);
// pieChart.invalidate();
 Legend mLegend = pieChart.getLegend(); //设置比例图
 mLegend.setPosition(LegendPosition.RIGHT_OF_CHART); //最右边显示
// mLegend.setForm(LegendForm.LINE); //设置比例图的形状,默认是方形
 mLegend.setXEntrySpace(7f);
 mLegend.setYEntrySpace(5f);
 pieChart.animateXY(1000, 1000); //设置动画
 // mChart.spin(2000, 0, 360);
 }
 /**
 *
 * @param count 分成几部分
 * @param range
 */
 private PieData getPieData(int count, float range) {
 ArrayList<String> xValues = new ArrayList<String>(); //xVals用来表示每个饼块上的内容
 for (int i = 0; i < count; i++) {
 xValues.add("Quarterly" + (i + 1)); //饼块上显示成Quarterly1, Quarterly2, Quarterly3, Quarterly4
 }
 ArrayList<Entry> yValues = new ArrayList<Entry>(); //yVals用来表示封装每个饼块的实际数据
 // 饼图数据
 /**
 * 将一个饼形图分成四部分, 四部分的数值比例为14:14:34:38
 * 所以 14代表的百分比就是14%
 */
 float quarterly1 = 14;
 float quarterly2 = 14;
 float quarterly3 = 34;
 float quarterly4 = 38;
 yValues.add(new Entry(quarterly1, 0));
 yValues.add(new Entry(quarterly2, 1));
 yValues.add(new Entry(quarterly3, 2));
 yValues.add(new Entry(quarterly4, 3));
 //y轴的集合
 PieDataSet pieDataSet = new PieDataSet(yValues, "Quarterly Revenue 2014"/*显示在比例图上*/);
 pieDataSet.setSliceSpace(0f); //设置个饼状图之间的距离
 ArrayList<Integer> colors = new ArrayList<Integer>();
 // 饼图颜色
 colors.add(Color.rgb(205, 205, 205));
 colors.add(Color.rgb(114, 188, 223));
 colors.add(Color.rgb(255, 123, 124));
 colors.add(Color.rgb(57, 135, 200));
 pieDataSet.setColors(colors);
 DisplayMetrics metrics = getResources().getDisplayMetrics();
 float px = 5 * (metrics.densityDpi / 160f);
 pieDataSet.setSelectionShift(px); // 选中态多出的长度
 PieData pieData = new PieData(xValues, pieDataSet);
 return pieData;
 }
} 

效果图如下:

主要是一些基本属性和API的调用,具体每个API都有什么样的效果和作用,只能靠自己去尝试。后面还会陆陆续续为大家介绍MPAndroidChart其他类型的图表。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android动态绘制饼状图的示例代码

    项目里面的需求,当时搜索到MPAndroidChart库,可以实现,但是只是一个需求就引用偌大的一个库,感觉不太爽,打算自己自定义一个. 一.惯例先上效果图 更新图 二.GitHub 代码地址,欢迎指正https://github.com/MNXP/XPPieChart 三.思路 1.空心图(一个大圆中心绘制一个小圆)   2.根据数据算出所占的角度   3.根据动画获取当前绘制的角度   4.根据当前角度获取Paint使用的颜色   5.动态绘制即将绘制的 和 绘制已经绘制的部分(最重要) 四

  • 安卓(Android)开发之自定义饼状图

    先来看看效果图 先分析饼状图的构成,非常明显,饼状图就是一个又一个的扇形构成的,每个扇形都有不同的颜色,对应的有名字,数据和百分比. 经以上信息可以得出饼状图的最基本数据应包括:名字 数据值 百分比 对应的角度 颜色. 用户关心的数据 : 名字 数据值 百分比 需要程序计算的数据: 百分比 对应的角度 其中颜色这一项可以用户指 public class PieData { private String name; // 名字 private float value; // 数值 private

  • MPAndroidChart开源图表库的使用介绍之饼状图、折线图和柱状图

    MPAndroidChart开源图表库之饼状图 为大家介绍一款图标开源库MPAndroidChart,它不仅可以在Android设备上绘制各种统计图表,而且可以对图表进行拖动和缩放操作,用起来非常灵活.MPAndroidChart同样拥有常用的图表类型:线型图.饼图.柱状图和散点图. mpandroidchartlibrary.jar包下载地址: https://github.com/PhilJay/MPAndroidChart/releases 下面主要实现以下饼状图: 1.从上面的地址中下载

  • Android自定义View实现饼状图带动画效果

    一个简单的自定义view饼状图,加入了动画效果 先看一下效果 下面就直接上代码了 public class Yidong2 extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new PointView(this)); } public class PointView

  • Android使用自定义View实现饼状图的实例代码

    本文讲述了Android使用自定义View实现饼状图的实例代码.分享给大家供大家参考,具体如下: 1.效果图 2.代码实现 public class PieChartView extends View { private Paint mPaint; private List<PieData>pieDataList; // 饼状图初始绘制角度 private float mStartAngle = 0; public PieChartView(Context context) { this(co

  • 手把手教你用Android自定义饼状图

    照例先上效果图 通过该例子,你能学到什么: 对Paint 深入理解,画绘制饼图,矩形,文字等 加深对canvas的API的掌握,对自定义View掌握 下面我们分七步来完成一个简单的饼形图绘制过程. 1. 重新View的构造方法 public PieView(Context context) { this(context, null); } public PieView(Context context, AttributeSet attrs) { this(context, attrs, 0);

  • Android自定义控件实现饼状图

    本文实现一个如图所示的控件,包括两部分,左边的饼状图和中间的两个小方块,及右边的两行文字 实现起来比较简单,只是一些绘图API的调用 核心代码在onDraw函数里边,对静态控件进行绘制即可 @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); /** * 饼状图的x坐标 */ float centreX= getWidth()/5; /** * 饼状图的y坐标 */ float centreY= getHei

  • Android MPAndroidChart开源图表库之饼状图的代码

    MPAndroidChart是一款基于Android的开源图表库,MPAndroidChart不仅可以在Android设备上绘制各种统计图表,而且可以对图表进行拖动和缩放操作,应用起来非常灵活.MPAndroidChart同样拥有常用的图表类型:线型图.饼图.柱状图和散点图. GitHub地址 下面主要实现以下饼状图: 1.从上面的地址中下载最新mpandroidchartlibrary-2-0-8.jar包, 然后copy到项目的libs中: 2.定义xml文件: 3.主要Java逻辑代码如下

  • D3.js实现饼状图的方法详解

    前言 小编在之前已经跟大家分享过关于怎样用柱状图和折线图这两种基本图表.这两种图表都是有坐标轴的,现在来说一种没有坐标轴的图表--饼图. 饼状图实现 还是和之前一样,我们先把简单的画图框架搭起来,添加SVG画布.但是这里需要注意的是,为了方便后面画饼图上的弧形,我们把组合这些元素的g元素移动到画布的中心: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"

  • PHP+mysql+Highcharts生成饼状图

    Mysql 首先我们建一张·chart_pie·表作为统计数据. -- -- 表的结构 `chart_pie` -- CREATE TABLE IF NOT EXISTS `chart_pie` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(30) NOT NULL, `pv` int(10) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUT

  • 如何利用pyecharts画好看的饼状图

    前言 使用的pyecharts是v1.0 这里需要注意,pyecharts0.5的版本和v1.0以上的版本完全不一样,可以说是两个包 该包能够方便快捷的绘制图形 饼状图 圆环 代码: from pyecharts.charts import Pie from pyecharts import options as opts from pyecharts.render import make_snapshot from snapshot_phantomjs import snapshot def

  • Android MPAndroidChart开源库图表之折线图的实例代码

    本文讲述了Android MPAndroidChart开源库图表之折线图的实例代码.分享给大家供大家参考,具体如下: 承接上一篇文章,请参考Android HelloChart开源库图表之折线图的实例代码 1. 将mpandroidchartlibrary-2-0-8.jar包copy到项目的libs中: 2. 定义xml文件. 3.  主要Java逻辑代码如下,注释已经都添加上了. package com.example.mpandroidlinechart; import java.util

  • Android 实现会旋转的饼状统计图实例代码

    Android 实现会旋转的饼状统计图实例代码 最近在做一个项目,由于有需要统计的需要,于是就做成了下面饼状统计图. 下图是效果图: 大致思路是: 关于的介绍这里不做详细介绍,如果想深入请点击开源项目MPAndroidChart 下面是其实现: 首先是添加MPAndroidChart依赖: maven { url "https://jitpack.io" } compile 'com.github.PhilJay:MPAndroidChart:v3.0.1' Mainactivity

  • PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图

    JpGraph简介 JpGraph是开源的PHP统计图表生成库,基于PHP的GD2图形库构建,把生成统计图的相关操作封装,隐藏了部分复杂的操作,使在PHP页面上输出统计图表变得更加容易.JpGraph的官方网站为:http://jpgraph.net,开发者可以在上面免费下载最新版的JpGraph和阅读相关帮助文档或示例程序. JpGraph的配置 (1)修改文件php.ini 在include_path中添加jpgraph的目录路径,并将jpgraph解压后的src目录名称更改为jpgraph

随机推荐