pieChart使用记录

前言:最近做的项目中UI图上有饼状图,然后就在网上找到了MPAndroidChart这个库,这篇博客记录一下项目中对PieChart一些方法的使用。

        PieDataSet pieDataSet = new PieDataSet(yValues, "");
        //设置饼状图每一片的颜色
        pieDataSet.setColors(colors);
        //点击饼状图的某一项浮动范围
        pieDataSet.setSelectionShift(0);
        //将数值显示在饼状图外边
        pieDataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
        //使线的颜色和饼的颜色一致
        pieDataSet.setUsingSliceColorAsValueLineColor(true);

        pieDataSet.setValueLinePart1OffsetPercentage(70.f);
        //斜着的线的长度
        pieDataSet.setValueLinePart1Length(0.3f);
        //指向数值的线的长度
        pieDataSet.setValueLinePart2Length(0.3f);
        //设置外边文字的颜色
        pieDataSet.setValueTextColors(pieDataSet.getColors());

        pieDataSet.setValueLineVariableLength(true);
        //饼状图数值设置为整数
        pieDataSet.setValueFormatter(new ValueFormatter() {
            @Override
            public String getFormattedValue(float value) {
                return ""+(int)value;
            }
        });

        PieData pieData = new PieData(pieDataSet);
        //设置数值的字体大小
        pieData.setValueTextSize(15);
        pc.setExtraOffsets(30,15,30,10);


        pc.setData(pieData);
        //设置中间洞的半径  默认50%
        pc.setHoleRadius(60);
        //禁止旋转
        pc.setRotationEnabled(false);

        //Chart库提供的图例,暂时没发现换行功能,禁用
        Legend legend = pc.getLegend();
//        legend.setPosition(Legend.LegendPosition.ABOVE_CHART_CENTER);
//        legend.setOrientation(Legend.LegendOrientation.HORIZONTAL);
//        legend.setForm(Legend.LegendForm.LINE);
        legend.setEnabled(false);


        //隐藏右下角的label
        Description description = new Description();
        description.setText("");
        pc.setDescription(description);

        //中间的文字
        pc.setCenterText(generateCenterSpannableText(sum));
        pc.setCenterTextColor(Color.parseColor("#6484FB"));
        pc.setCenterTextSize(31);
        pc.invalidate();

其中的generateCenterSpannableText(int sum)方法代码:

 private static SpannableString generateCenterSpannableText(int sum) {
        SpannableString s = new SpannableString(sum+"\n资产总数");
        s.setSpan(new RelativeSizeSpan(1f), 0, (""+sum).length()-1, 0);
        s.setSpan(new RelativeSizeSpan(0.4f), (""+sum).length()  , s.length(), 0);
        s.setSpan(new ForegroundColorSpan(Color.parseColor("#666666")), (""+sum).length(), s.length(), 0);
        return s;
    }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值