9.格式化数据值(ValueFormatter)

自v1.6.2起可用 - 在v2.1.4中更改(改进)

该IValueFormatter可用于创建自定义界面的格式化程序类,允许DataSets在绘制图形之前以特定方式格式化图表中的值(从)。

对于使用IValueFormatter,只需创建一个新类,并让它实现接口并返回任何你想要显示的getFormattedValue(…)方法。

Creating a Formatter

public class MyValueFormatter implements IValueFormatter {

    private DecimalFormat mFormat;

    public MyValueFormatter() {
    mFormat = new DecimalFormat("###,###,##0.0"); // 使用一个小数
    }

    @Override
    public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
    //在这里写你的逻辑
    return mFormat.format(value) + " $"; //例如附加一个美元符号
    }
}

然后,将您的格式化器设置给ChartData或DataSet对象:

//对整个数据对象使用 
lineData.setValueFormatter( new  MyValueFormatter());

//对个别数据集对象使用 
lineDataSet.setValueFormatter( new  MyValueFormatter());

Predefined Formatters

  • LargeValueFormatter:可用于格式化大值>“1.000”。将“1.000”的值变为“1k”,“1.000.000”将为“1m”(百万),“1.000.000.000”为“1b”(十亿),像万亿的值将为“1t ”。
  • PercentFormatter:用于在每个值与1位十进制数字之后显示“%”号。特别有用的PieChart。50 - > 50.0%
  • StackedValueFormatter:专门设计用于堆叠的格式化程序BarChart。它允许指定是否应绘制所有堆栈值或仅指定最大值。
坚持原创技术分享,您的支持将鼓励我继续创作!
0%