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;
    }

你可能感兴趣的:(学习)