9.Formatting Data Values (ValueFormatter)(MPAndroidChart中文翻译)

目录

第8节.Setting Colors(MPAndroidChart中文翻译)
第9节.Formatting Data Values (ValueFormatter)(MPAndroidChart中文翻译)
第10节-Formatting Axis Values (AxisValueFormatter)(MPAndroidChart中文翻译)
第11节.General Settings & Styling(MPAndroidChart中文翻译)
第12节.Specific Settings & Styling(MPAndroidChart中文翻译)
第13节.Legend(MPAndroidChart中文翻译)
第14节.Dynamic & Realtime Data(MPAndroidChart中文翻译)
第15节. Modifying the Viewport(MPAndroidChart中文翻译)
第16节.Animations(MPAndroidChart中文翻译)
第17节. MarkerView (Popup View)(MPAndroidChart中文翻译)
第18节. The ChartData class(MPAndroidChart中文翻译)
第19节. ChartData subclasses(MPAndroidChart中文翻译)
第20节. The DataSet class (general DataSet styling)(MPAndroidChart中文翻译)
第21节. DataSet subclasses (specific DataSet styling)(MPAndroidChart中文翻译)
第22节. The ViewPortHandler(MPAndroidChart中文翻译)
第23节. Customizing the Fill-Line-Position (FillFormatter)(MPAndroidChart中文翻译)
第24节. Proguard(MPAndroidChart中文翻译)
第25节. Realm.io mobile database(MPAndroidChart中文翻译)
第26节. Creating your own (custom) DataSets(MPAndroidChart中文翻译)
第27节. Miscellaneous (more useful stuff)(MPAndroidChart中文翻译)

v1.6.2增加 - v2.1.4优化

IValueFormatter接口用于创建自定义的格式类,该格式类允许在绘制之前用一种特殊的方法格式化图表中的数据.

使用IValueFormatter,创建一个类,让它实现该接口,并且在getFormattedValue(...)方法中返回你想展示的内容.

Creating a Formatter

public class MyValueFormatter implements IValueFormatter {

    private DecimalFormat mFormat;
    
    public MyValueFormatter() {
        mFormat = new DecimalFormat("###,###,##0.0"); // use one decimal
    }
    
    @Override
    public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
        // write your logic here
        return mFormat.format(value) + " $"; // e.g. append a dollar-sign
    }
}

然后,给ChartData或者DataSet设置formatter:

// usage on whole data object
lineData.setValueFormatter(new MyValueFormatter());

// usage on individual dataset object
lineDataSet.setValueFormatter(new MyValueFormatter());

默认格式转换器

  • LargeValueFormatter:用于格式化大于1,000的数值.将1,000转换为1k,1,000,000转换为1m(million),1,000,000,000转换为1b(billion),1 trillion转换为1t.
  • PercentFormatter:用于显示在一个十进制数后面增加"%"标记.尤其适用于PieChart. 50->50.0%
    *StackedValueFormatter:专门用于重叠BarChart.它语序指定显示所有的重叠的数值,还是只显示最顶部的数值.

你可能感兴趣的:(9.Formatting Data Values (ValueFormatter)(MPAndroidChart中文翻译))