MPAndroidChart中饼图(PieChart)

饼图上一篇
我很懒没有去封装这些使用方法,想复用的点击下面这个链接,^_^。
另一个博主对MPAndroidChart一些方法的封装

如果大家想要对饼图使用渐变,可以看下我的修改方式。
1、导入MPAndroidChart
2、找到renderer文件夹,然后找到PieChartRenderer.java
3、修改此处调用,如图
这里写图片描述
4、修改coloringLine()这个调用方法,没记错的话,这个类里面应该没有这个方法,我只直接从前面的修改拷贝过来的,修改如图。
这里写图片描述
这里写图片描述

可以参考楼主之前的直方图修改渐变
直方图渐变

结果显示

饼图

  • 设置饼图基础属性
//显示成百分比
        mPieChart.setUsePercentValues(true);
        //设置没有描述
        mPieChart.getDescription().setEnabled(false);
        //mPieChart.setExtraOffsets(30,0,30,0);
        //给饼图设置左上右下的边距
        mPieChart.setExtraOffsets(20,0,20,0);
        mPieChart.setBackgroundColor(ColorAndImgUtils.CHART_BACKGROUND_COLOR);
        //减速摩擦系数,值越大表示会缓慢停止
        mPieChart.setDragDecelerationFrictionCoef(0.95f);
        //设置饼图中间的文字
        //mPieChart.setCenterText(generateCenterSpannableText());
        //这个方法为true就是环形图,为false就是饼图
        mPieChart.setDrawHoleEnabled(false);
        //设置环形中间空白颜色是白色
        //mPieChart.setHoleColor(Color.WHITE);
        //设置半透明圆环的颜色
        //mPieChart.setTransparentCircleColor(Color.WHITE);
        //设置半透明圆环的透明度
        //mPieChart.setTransparentCircleAlpha(110);
        //设置中间环形的半径
        //mPieChart.setHoleRadius(58f);
        //设置半透明圆环的半径,看着就有一种立体的感觉
        //mPieChart.setTransparentCircleRadius(61f);
        //设置饼图中间是否可以添加文字
        mPieChart.setDrawCenterText(false);
        //设置初始旋转角度
        mPieChart.setRotationAngle(0);
        //设置可以手动旋转
        mPieChart.setRotationEnabled(true);
        //这个方法默认是true,设置为false之后,点击每一块不能向外突出
        mPieChart.setHighlightPerTapEnabled(true);
        //从Y轴的动画
        mPieChart.animateY(1500, Easing.EasingOption.EaseInOutQuad);

        // entry label styling
        //设置饼图上面的文字是否显示,不显示的话只显示百分比
        mPieChart.setDrawEntryLabels(true);
        //设置饼图每一块的说明的字体颜色
        mPieChart.setEntryLabelColor(ColorAndImgUtils.PIE_ENTRY_LABLE_COLOR);
        //设置饼图每一块说明的字体大小
        mPieChart.setEntryLabelTextSize(14f);
        //给字体加粗
        mPieChart.setEntryLabelTypeface(Typeface.DEFAULT_BOLD);
  • 设置图例
//获取图例对象
Legend legend = mPieChart.getLegend();
//设置图例不显示
legend.setEnabled(false);
  • 设置饼图的值
private void setData(ArrayList<String> xValueList, ArrayList<Integer> yValueList) {
        ArrayList<PieEntry> pieEntries = new ArrayList<>();
        for (int i = 0; i < xValueList.size(); i++) {
            //添加值和值的名字
            //pieEntries.add(new PieEntry(yValueList.get(i), xValueList.get(i)));
            pieEntries.add(new PieEntry(yValueList.get(i),yValueList.get(i)+""));
        }
        PieDataSet dataSet = new PieDataSet(pieEntries, "");
        //设置为true就会给每一个模块画上一个图标
        dataSet.setDrawIcons(false);
        //设置饼图模块之间的距离
        dataSet.setSliceSpace(0f);
        //dataSet.setIconsOffset(new MPPointF(0, 40));
        //设置饼图模块选中之后弹出去的长度
        dataSet.setSelectionShift(20f);
        //设置饼图的颜色
        dataSet.setColors(ColorAndImgUtils.ALL_COLORS);

        //这一段代码就是实现加一个横线然后将模块的数据放在外面的效果
        /////////////////////////////////////////
        dataSet.setValueLinePart1OffsetPercentage(80.f);
        dataSet.setValueLinePart1Length(0.5f);
        dataSet.setValueLinePart2Length(0.5f);
        dataSet.setValueLineColor(ColorAndImgUtils.PIE_YVALUE_COLOR);
        //当值显示在界面外面的时候是否允许改变量行长度
        dataSet.setValueLineVariableLength(false);
        //设置线的宽度
        dataSet.setValueLineWidth(1);
        //设置项X值拿出去
        dataSet.setXValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
        //设置将Y轴的值拿出去
        dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);

        PieData data = new PieData(dataSet);
        //设置Y值使用自定义形式展示
        data.setValueFormatter(new PercentFormatter());
        //设置饼图上面数据字体的大小
        data.setValueTextSize(12f);
        //设置饼图上面数据字体的颜色
        data.setValueTextColor(ColorAndImgUtils.PIE_YVALUE_COLOR);
        //设置Y值是否显示
        data.setDrawValues(true);
        mPieChart.setData(data);
        mPieChart.highlightValues(null);
        mPieChart.invalidate();
    }
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃骨头不吐股骨头皮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值