我正在研究图表,它们工作得很好。我正在使用 MPChart 库。它在每个条形的顶部显示准确的计算值。在这里我们可以看到柱顶部显示的值是准确的柱限制。
现在我有另一个要求,我必须在条形顶部显示与其限制值不同的另一个值
请告诉我如何才能实现这一目标。
最佳答案
您可以使用 ValueFormatter
来执行此操作。您只需编写一个实现此接口(interface)的类并重写该方法即可:
String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler)
将实际值转换为要显示的值所需的逻辑放入方法内。例如,以下 ValueFormatter
只是将实际图表值乘以 10:
public class TenTimesValueFormatter implements ValueFormatter {
@Override
protected String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
return Integer.toString(value * 10);
}
}
你可以像这样使用它:
barData.setValueFormatter(new TenTimesValueFormatter());
您可能需要:
mChart.getXAxis().setGranularity(1);
mChart.getXAxis().setGranularityEnabled(true);
更新:如果您需要一个仅从支持数组中获取值的ValueFormatter
,您可以执行以下操作:
public class IndexValueFormatter implements IValueFormatter {
private final String [] values;
public IndexValueFormatter(String[] values) {
this.values = values;
}
@Override
public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
int index = Math.round(value);
if (index < 0 || index >= values.length || index != (int)value)
return "";
return values[index];
}
}
关于android - 如何在栏顶部显示不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42862282/