Как удалить линии, если значения на круговой диаграмме равны 0 %

Я работаю над круговой диаграммой, для этого я использую библиотеку 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%?

образ

2 ответа

Решение

Я изменил метод drawValues в PieChartRenderer учебный класс.

Не отображать строку, если значение равно 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 вы можете проверить, как это сделать.

Другие вопросы по тегам