MPAndroidChart饼状图使用文档

第一步:导包

在工程目录的build文件中必须要引入maven { url "https://jitpack.io" }

如图:

在app中的build.gradle中添加

implementation 'com.mysugr.MPAndroidChart:MPAndroidChart:3.1.0-mysugr-1'

如图:

 

第二步:创建xml

如图:

需要注意的是最好给PieChart定个高,它不能自适应

 

第三步:初始化饼状图(使用少量的方法先简单弄一个,下面会介绍各个方法的详情)

 

第四步:添加参数

 

运行结果:

 

其它方法说明:

初始化饼状图的方法:
mPieChart = findViewById(R.id.mPieChart);
mPieChart.setUsePercentValues(true);//设置value是否用显示百分数,默认为false
mPieChart.getDescription().setEnabled(false);//设置描述
mPieChart.setExtraOffsets(5, 10, 5, 5);//设置饼状图距离上下左右的偏移量
mPieChart.setDragDecelerationFrictionCoef(0.95f);//设置阻尼系数,范围在[0,1]之间,越小饼状图转动越困难
//设置中间文字
mPieChart.setDrawCenterText(true);//是否绘制中间的文字
mPieChart.setCenterText(generateCenterSpannableText());
mPieChart.setCenterTextSize(10f);
mPieChart.setNoDataText("暂无数据");// 如果没有数据的时候,会显示这个,类似ListView的EmptyView
mPieChart.setDrawHoleEnabled(true);//是否绘制饼状图中间的圆
mPieChart.setHoleColor(Color.WHITE);//饼状图中间的圆的绘制颜色
mPieChart.setTransparentCircleColor(Color.WHITE);//设置圆环的颜色
mPieChart.setTransparentCircleAlpha(110);//设置圆环的透明度[0,255]
mPieChart.setHoleRadius(58f);//饼状图中间的圆的半径大小
mPieChart.setTransparentCircleRadius(61f);//设置圆环的半径值
mPieChart.setRotationAngle(0);//设置饼状图旋转的角度
//触摸旋转
mPieChart.setRotationEnabled(true);//设置饼状图是否可以旋转(默认为true)
mPieChart.setHighlightPerTapEnabled(true);//设置旋转的时候点中的tab是否高亮(默认为true)
//变化监听
mPieChart.setOnChartValueSelectedListener(this);//点击饼状图后的变化监听
//饼状图的动画  durationMillis:动画所用时长,easing:动画类型
mPieChart.animateY(1400, Easing.EasingOption.EaseInOutQuad);

//设置每个tab比例块的显示位置如图:
Legend l = mPieChart.getLegend();//设置比例块
l.setVerticalAlignment(Legend.LegendVerticalAlignment.BOTTOM);
l.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);
l.setOrientation(Legend.LegendOrientation.HORIZONTAL);
l.setDrawInside(false);
l.setXEntrySpace(10f);//设置tab比例块之间X轴方向上的空白间距值(水平排列时)
l.setYEntrySpace(0f);//设置tab比例块之间Y轴方向上的空白间距值(垂直排列时)
l.setYOffset(10f);
l.setFormSize(10f);//设置比例块大小
l.setTextSize(12f);//设置比例块字体大小
l.setForm(Legend.LegendForm.CIRCLE);//设置比例块图标形状,默认为方块
l.setEnabled(true);//设置是否启用比例块,默认启用
l.setWordWrapEnabled(true);//设置比例块换行...
// 输入标签样式
mPieChart.setDrawEntryLabels(true);//设置是否绘制Label
mPieChart.setEntryLabelColor(Color.WHITE);//设置绘制Label的颜色
mPieChart.setEntryLabelTextSize(12f);//设置绘制Label的字体大小
//设置数据
PieDataSet dataSet = new PieDataSet(entries, "三年级一班");
dataSet.setSliceSpace(3f);
dataSet.setSelectionShift(5f);

//数据和颜色
ArrayList<Integer> colors = new ArrayList<Integer>();
for (int c : ColorTemplate.PASTEL_COLORS)
    colors.add(c);
colors.add(ColorTemplate.getHoloBlue());
dataSet.setColors(colors);
PieData data = new PieData(dataSet);
data.setValueFormatter(new PercentFormatter());
data.setValueTextSize(11f);//数据字体大小
data.setValueTextColor(Color.WHITE);//数据字体颜色
mPieChart.setData(data);
mPieChart.highlightValues(null);
//刷新
mPieChart.invalidate();

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值