如果饼图中的值为 0%,如何删除线条

how to remove lines if values is 0 % in pie chart

我正在制作饼图,为此,我正在使用 MPAndroidChart 库,值可能包含 0% 的任何数据或多个数据,并且我显示的值超出使用 setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE) 的饼图。 我不想在饼图中显示 0% 的值,我有一个使用格式化值的解决方案。

public class CustomPercentFormatter implements IValueFormatter {    

    private DecimalFormat mFormat;

    public CustomPercentFormatter() {
        mFormat = new DecimalFormat("###,###,##0.0");
    }

    public CustomPercentFormatter(DecimalFormat format) {
        this.mFormat = format;
    }

    @Override
    public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {

        if (value == 0.0f)
            return "";

        return mFormat.format(value) + " %";
    }
}

但是如果我使用线条选项,那么线条会显示为 0% 值并重叠显示多个 0% 值,所以任何人都可以帮助我删除 0% 值的线条选项?

我在PieChartRendererclass.

中更改了方法drawValues ]

如果值为 0,则不显示行。

只说一个条件:

if (entry.getValue() != 0.0) {
    if (dataSet.getValueLineColor() != ColorTemplate.COLOR_NONE) {
        c.drawLine(pt0x, pt0y, pt1x, pt1y, mValueLinePaint);
        c.drawLine(pt1x, pt1y, pt2x, pt2y, mValueLinePaint);
    }
}

而不是下面的代码:

if (dataSet.getValueLineColor() != ColorTemplate.COLOR_NONE) {
    c.drawLine(pt0x, pt0y, pt1x, pt1y, mValueLinePaint);
    c.drawLine(pt1x, pt1y, pt2x, pt2y, mValueLinePaint);
}

如果您不想绘制这些线条,则必须将该线条的颜色设置为 ColorTemplate.COLOR_NONE

我没有足够的原始代码来指出具体要做什么,但是在示例中 https://github.com/PhilJay/MPAndroidChart/blob/master/MPChartExample/src/com/xxmassdeveloper/mpchartexample/PieChartActivity.java#L199 您可以查看如何做。