MPAndroidChart,如何删除小数百分比而不显示低于10的百分比?
我正在使用,我有两个问题:MPAndroidChart,如何删除小数百分比而不显示低于10的百分比?,android,mpandroidchart,Android,Mpandroidchart,我正在使用,我有两个问题: MPAndroid饼图删除小数百分比 不在饼图上显示值小于10%的值,但显示切片;对于低于10%的百分比,不应仅显示文本 版本3.0.0+的更新 现在可以通过扩展ValueFormatter类并重写格式化所需的方法来格式化值。这也是可以插入自定义逻辑(例如,仅显示大于10的值的标签)的地方 class MyValueFormatter : ValueFormatter() { private val format = DecimalFormat("###,#
- MPAndroid饼图删除小数百分比
- 不在饼图上显示值小于10%的值,但显示切片;对于低于10%的百分比,不应仅显示文本
ValueFormatter
类并重写格式化所需的方法来格式化值。这也是可以插入自定义逻辑(例如,仅显示大于10的值的标签)的地方
class MyValueFormatter : ValueFormatter() {
private val format = DecimalFormat("###,##0.0")
// override this for e.g. LineChart or ScatterChart
override fun getPointLabel(entry: Entry?): String {
return format.format(entry?.y)
}
}
更多示例和详细说明请参见。对于MPAndroidChart的新版本(3.0.0),请使用以下方法:
在setData()方法中:
PieData data = new PieData(dataSet);
data.setValueFormatter(new DecimalRemover(new DecimalFormat("###,###,###")));
以下是小数删除器类:
public class DecimalRemover extends PercentFormatter {
protected DecimalFormat mFormat;
public DecimalRemover(DecimalFormat format) {
this.mFormat = format;
}
@Override
public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
if(value < 10) return "";
return mFormat.format(value) + " %";
}
}
公共类小数删除程序扩展了PercentFormatter{
受保护的十进制格式;
公共小数删除程序(十进制格式){
this.mFormat=格式;
}
@凌驾
公共字符串getFormattedValue(浮点值、条目、int-dataSetIndex、ViewPortHandler和ViewPortHandler){
如果(值<10)返回“”;
返回mFormat.format(值)+“%”;
}
}
ValueFormatter已被PercentFormatter取代要删除小数百分比,请轻松使用:
PiedataSet.setValueFormatter(新的百分比格式(新的十进制格式(“####,####,##0”))代码>第一步:
请将以下“PercentFormatter
”类放入您的软件包文件夹中:
public class PercentFormatter extends ValueFormatter {
public DecimalFormat mFormat;
private PieChart pieChart;
public PercentFormatter() {
mFormat = new DecimalFormat("###,###,##");
}
public PercentFormatter(PieChart pieChart) {
this();
this.pieChart = pieChart;
}
@Override
public String getFormattedValue(float value) {
return mFormat.format(value) + " %";
}
@Override
public String getPieLabel(float value, PieEntry pieEntry) {
if (pieChart != null && pieChart.isUsePercentValuesEnabled()) {
// Converted to percent
return getFormattedValue(value);
} else {
// raw value, skip percent sign
return mFormat.format(value);
}
}
}
第二步:
在Piedata集合所在的活动中,按以下方式在PieDataset中添加值格式:
pieChart = (PieChart) findViewById(R.id.pieChart);
PieDataSet pieDataSet = new PieDataSet(getData(approved, pending, rejected), "");
pieDataSet.setValueFormatter(new PercentFormatter());
PieData pieData = new PieData(pieDataSet);
pieChart.setData(pieData);
这样,我们就可以删除饼图数据中的小数点。现在MPAndroidChart 3.0.0中不推荐使用此选项。如何同时使用值和百分比?IValueFormatter不推荐使用其他方法吗?PercentFormatter需要一个饼图作为参数,现在不是DecimalFormatgetFormattedValuedeprecated@NikosHidalgo请使用当前支持此功能的方法更新答案。