Есть ли способ подавить текст с нулевым значением из диаграммы Android MP (круговая диаграмма)
Как скрыть нулевые значения в круговой диаграмме - MPChart android
Ответы (4)
Как насчет этого?
if(value > 0) dataSet.add(...)
else {
// do nothing
}
Или напишите свой собственный ValueFormatter
для подавления нулей.
person
Philipp Jahoda
schedule
05.10.2015
Я сделал то же самое. Есть ли другой вариант в таблице MP
- person ; 05.10.2015
Используйте пользовательский форматтер и возвращайте пустую строку, если значение == 0.0f
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) + " %";
}
}
установить форматер:
lineData.setValueFormatter(new CustomPercentFormatter());
person
Ali Zarei
schedule
21.03.2017
Вы можете реализовать новый форматтер для MPChart
, как заявил Али Зарей в своем ответе. Но вам все еще может понадобиться опция настройки цифр библиотеки, которая уже реализована в DefaultValueFormatter
Для этого вы можете просто создать новый модуль форматирования и расширить его от DefaultValueFormatter
и Override
к методу getFormattedValue
из DefaultValueFormatter
и проверить, больше ли значение 0 или нет.
public class NonZeroChartValueFormatter extends DefaultValueFormatter {
public NonZeroChartValueFormatter(int digits) {
super(digits);
}
@Override
public String getFormattedValue(float value, Entry entry, int dataSetIndex,
ViewPortHandler viewPortHandler) {
if (value > 0) {
return mFormat.format(value);
} else {
return "";
}
}
}
person
savepopulation
schedule
02.06.2017
Я столкнулся с похожей проблемой. Я хочу скрыть метки для нулевых значений в круговой диаграмме и по-прежнему хочу сохранить их в легенде. Я переопределяю ValueFormatter, но мне удается скрыть только 0 значений, а не метки. Любые советы? Пожалуйста помоги.
- person CristianoYL; 16.06.2017
это решение скроет 0 меток, но 0 значений все равно будут сохранены в виде записи круговой диаграммы. если вы не хотите сохранять его как запись, вам нужно проверить, равно ли значение 0, и не добавлять его как запись.
- person savepopulation; 16.06.2017
Разработчики Kotlin:
class MyCustomValueFormatter : ValueFormatter() {
override fun getFormattedValue(value: Float): String {
return if (value == 0f) {
""
} else {
value.roundToInt().toString() + " %"
}
}
}
и используйте это как
pieData.setValueFormatter(MyCustomValueFormatter())
person
Kishan Solanki
schedule
24.07.2021