最近需求一些图表的功能,就了解了一下MPAndroidChart框架,感觉用法简单方便,很实用。今天写一写其中关于饼状图表的相关功能介绍,我封装成了一个类,更方便调用。
一,添加依赖:
1 . 在project的build.gradle中添加依赖:
repositories {
//......//
maven { url "https://jitpack.io"}//chart需求
}
2 . 在app的build.gradle中添加依赖:
dependencies {
//......//
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
}
二,封装类(可以直接用):
import android.graphics.Typeface;
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 com.github.mikephil.charting.formatter.PercentFormatter;
import com.github.mikephil.charting.interfaces.datasets.IDataSet;
import java.util.List;
/**
* 饼状图表
*/
public class MPPieChartManager {
public PieChart mPieChart;
private PieDataSet pieDataSet;
public MPPieChartManager(PieChart pieChart) {
this.mPieChart = pieChart;
}
/**
* 饼状图中间是否显示中间的洞
* @param isHole 是否显示中间的洞
* @param vHole 设置中间洞的大小
* @param vCircleRadius 半径
* @param vCircleColor 颜色
* @param vCircleAlpha 透明度
* */
public void initCenter(boolean isHole, float vHole, float vCircleRadius, int vCircleColor, int vCircleAlpha) {
mPieChart.setDrawHoleEnabled(isHole);// 是否显示中间的洞
mPieChart.setHoleRadius(vHole);// 设置中间洞的大小
// 半透明圈
mPieChart.setTransparentCircleRadius(vCircleRadius);
mPieChart.setTransparentCircleColor(vCircleColor); //设置半透明圆圈的颜色
mPieChart.setTransparentCircleAlpha(vCircleAlpha); //设置半透明圆圈的透明度
}
/**
* 饼状图中间是否添加文字
* @param isTxt 是否添加文字
* @param txt 设置中间文字
* @param txtColor 中间文字的颜色
* @param txtSize 中间文字的大小px
* */
public void initCenterText(boolean isTxt, String txt, int txtColor, int txtSize) {
mPieChart.setDrawCenterText(isTxt); //是否添加文字
if (isTxt){
mPieChart.setCenterText(txt); //设置中间文字