android开源图表库MPAndroidChart(曲线图、直方图、饼状图)
github地址:https://github.com/PhilJay/MPAndroidChart
添加依赖:
- Add the following to your project level
build.gradle
:
- allprojects {
- repositories {
- maven { url "https://jitpack.io" }
- }
- }
- Add this to your app
build.gradle
:
- dependencies {
- compile 'com.github.PhilJay:MPAndroidChart:v3.0.2'
- }
- 下载Demo演示,修改成自己的需求即可
如饼图的示例代码:
- import android.graphics.Color;
- import android.os.Bundle;
- import android.support.v7.app.AppCompatActivity;
- import android.util.DisplayMetrics;
- import com.github.mikephil.charting.charts.PieChart;
- import com.github.mikephil.charting.components.Description;
- import com.github.mikephil.charting.components.Legend;
- import com.github.mikephil.charting.data.PieData;
- import com.github.mikephil.charting.data.PieDataSet;
- import com.github.mikephil.charting.data.PieEntry;
- import java.util.ArrayList;
- public class MainActivity extends AppCompatActivity {
- private PieChart mChart;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- mChart = (PieChart) findViewById(R.id.pieChart);
- PieData mPieData = getPieData(4, 100);
- showChart(mChart, mPieData);
- }
- private void showChart(PieChart pieChart, PieData pieData) {
- pieChart.setHoleColor(Color.TRANSPARENT);
- pieChart.setHoleRadius(60f); //半径
- pieChart.setTransparentCircleRadius(64f); // 半透明圈
- //pieChart.setHoleRadius(0) //实心圆
- Description description = new Description();
- description.setText("测试饼状图");
- pieChart.setDescription(description);
- // mChart.setDrawYValues(true);
- pieChart.setDrawCenterText(true); //饼状图中间可以添加文字
- pieChart.setDrawHoleEnabled(true);
- pieChart.setRotationAngle(90); // 初始旋转角度
- pieChart.setRotationEnabled(true); // 可以手动旋转
- pieChart.setUsePercentValues(true); //显示成百分比
- pieChart.setCenterText("测试"); //饼状图中间的文字
- pieChart.setCenterTextSize(18);
- //设置数据
- pieChart.setData(pieData);
- Legend mLegend = pieChart.getLegend(); //设置比例图
- mLegend.setPosition(Legend.LegendPosition.RIGHT_OF_CHART); //最右边显示
- // mLegend.setForm(LegendForm.LINE); //设置比例图的形状,默认是方形
- mLegend.setXEntrySpace(7f);
- mLegend.setYEntrySpace(5f);
- pieChart.animateXY(1000, 1000); //设置动画
- }
- /**
- *
- * @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<PieEntry> yValues = new ArrayList(); //yVals用来表示封装每个饼块的实际数据
- // 饼图数据
- /**
- * 将一个饼形图分成四部分, 四部分的数值比例为14:14:34:38
- * 所以 14代表的百分比就是14%
- */
- float quarterly1 = 14;
- float quarterly2 = 14;
- float quarterly3 = 34;
- float quarterly4 = 38;
- yValues.add(new PieEntry(quarterly1, 0));
- yValues.add(new PieEntry(quarterly2, 1));
- yValues.add(new PieEntry(quarterly3, 2));
- yValues.add(new PieEntry(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(pieDataSet);
- return pieData;
- }
- }
activity_main.xml
- <com.github.mikephil.charting.charts.PieChart
- android:id="@+id/pieChart"
- android:layout_width="match_parent"
- android:layout_height="320dp"
- />
android开源图表库MPAndroidChart(曲线图、直方图、饼状图)的更多相关文章
- 我的Android进阶之旅------>【强力推荐】Android开源图表库XCL-Charts版本发布及展示页
因为要做图表相关的应用,后来百度发现了一个很好的Android开源图表库(XCL-Charts is a free charting library for Android platform.) 下面 ...
- Android开源图表库介绍
XCL-Charts XCL-Charts V1.8 Android开源图表库(XCL-Charts is a free charting library for Android platfo ...
- Android开源图表库XCL-Charts版本号公布及展示页
XCL-Charts V2.1 Android开源图表库(XCL-Charts is a free charting library for Android platform.) XCL-Charts ...
- Android图表库MPAndroidChart(三)——双重轴线形图的实现,这次就so easy了
Android图表库MPAndroidChart(三)--双重轴线形图的实现,这次就so easy了 在学习本课程之前我建议先把我之前的博客看完,这样对整体的流程有一个大致的了解 Android图表库 ...
- android 开源图表库MPChart最简单使用方法示例教程Demo--折线图 柱状图
转载请注明本文出处:http://blog.csdn.net/wingichoy/article/details/50428246 MPChart是android上一款强大的图表开源库,他可以轻松的绘 ...
- JS图表插件(柱形图、饼状图、折线图)
http://www.open-open.com/lib/view/open1406378625726.html
- Android图表库MPAndroidChart(五)——自定义MarkerView实现选中高亮
Android图表库MPAndroidChart(五)--自定义MarkerView实现选中高亮 在学习本课程之前我建议先把我之前的博客看完,这样对整体的流程有一个大致的了解 Android图表库MP ...
- Android图表库MPAndroidChart(四)——条形图的绘制过程过程,隐隐约约我看到了套路
Android图表库MPAndroidChart(四)--条形图的绘制过程过程,隐隐约约我看到了套路 在学习本课程之前我建议先把我之前的博客看完,这样对整体的流程有一个大致的了解 Android图表库 ...
- Android图表库MPAndroidChart(二)——线形图的方方面面,看完你会回来感谢我的
Android图表库MPAndroidChart(二)--线形图的方方面面,看完你会回来感谢我的 在学习本课程之前我建议先把我之前的博客看完,这样对整体的流程有一个大致的了解 Android图表库MP ...
随机推荐
- Java定义栈结构,实现入栈、出栈操作
package com.example.demo; import java.util.ArrayList; public class Stack { ArrayList<Object> l ...
- 虚拟机Linux下扩展硬盘的方法
[原文链接]:http://blog.csdn.net/tianlesoftware/article/details/5642883 装虚拟机时空间划小了,于是又加了5G的空间,折腾了半天,挂上去了. ...
- Delphi 指针类型
- Centos7 初始化
systemctl disable firewalld sed -ri '/^[^#]*SELINUX=/s#=.+$#=disabled#' /etc/selinux/config grubby - ...
- Codeforces Round #344 (Div. 2) 631 B. Print Check (实现)
B. Print Check time limit per test1 second memory limit per test256 megabytes inputstandard input ou ...
- C++的一些黑暗料理
本文中的“黑暗料理”仅限本人在学习C++的过程中感觉易忘.有趣.不为大多数人所知的一些特性. 1. C++中int型数据在VC++环境下最小值为什么是 -32678,而不是-32677,其中涉及到原码 ...
- 【AGC005 F】Many Easy Problems
神他吗一天考一道码农题两道 FFT(其实还是我推式子一窍不通) 题意 给你一棵 \(n\) 个点的树,再给你一个常数 \(k\). 设 \(S\) 为树上某些点的集合,定义 \(f(S)\) 为最小的 ...
- PHP preg_match正则表达式
行定位符 ^表示开始 $表示结束 preg_match(模式,待搜索的字符串,$matches) 其中matches为可选参数,一旦匹配上,可以返回匹配结果 举个例子: $pattern = '/#\ ...
- 1、检查并修改mysql的my.ini的配置文件
代码如下: default-character-set=utf8 2.建立数据库是要指定字符集 代码如下: create database mydb default character set utf ...
- Web API接口规范与测试方法
目录 1.Web API接口 1.1接口的四大特点 1.2接口文档的编写:YApi 1.3接口测试工具:Postman 2.接口规范(restful) 2.1URL设计 2.1.1 数据的安全保障(h ...