-
-
Notifications
You must be signed in to change notification settings - Fork 9k
The ValueFormatter interface
Philipp Jahoda edited this page Apr 29, 2015
·
18 revisions
The ValueFormatter
interface can be used to create custom-made formatter classes that allow to format values within the chart (from DataSets
) or values from the YAxis
in a specific way.
For using the ValueFormatter
, simply create a new class and let it implement the interface and return whatever you want to be displayed from the getFormattedValue(float value)
method.
Example of a custom formatter
public class MyValueFormatter implements ValueFormatter {
private DecimalFormat mFormat;
public MyValueFormatter() {
mFormat = new DecimalFormat("###,###,##0.0"); // use one decimal
}
@Override
public String getFormattedValue(float value) {
return mFormat.format(value) + " $"; // append a dollar-sign
}
}
Then, set your formatter to the YAxis
, ChartData
or DataSet
object:
// usage on axis
yAxis.setValueFormatter(new MyValueFormatter());
// usage on whole data object
lineData.setValueFormatter(new MyValueFormatter());
// usage on individual dataset object
lineDataSet.setValueFormatter(new MyValueFormatter());
Predefined custom Formatters
- LargeValueFormatter: Can be used for formatting large values > "1.000". It will turn values like "1.000" into "1k", "1.000.000" will be "1m" (million), "1.000.000.000" will be "1b" (billion) and values like one trillion will be e.g. "1t". It does not support numbers with decimal digits like "1.000,5".
-
PercentFormatter: Used for displaying a "%" sign after each value with 1 decimal digit. Especially useful for the
PieChart
.