我有一个带X值的水平条形图 . 现在我只能用这样的浮点值创建一个BarEntry:
BarEntry barEntry = new BarEntry( (float )iAmountInCents / 100, ++ index,item.getKey());
valueSet1.add(barEntry);
我还添加了 custom formatter :
public class MyYAxisValueFormatter implements YAxisValueFormatter {
private DecimalFormat mFormat;
public MyYAxisValueFormatter () {
mFormat = new DecimalFormat("###,###,##0.00");
}
@Override
public String getFormattedValue(float value, YAxis yAxis) {
// write your logic here
// access the YAxis object to get more information
return "₹. " + mFormat.format(value) ;
}
}
YAxis leftAxis = mChart.getAxisLeft();
leftAxis.setValueFormatter(new MyYAxisValueFormatter());
YAxis rightAxis = mChart.getAxisRight();
rightAxis.setValueFormatter(new MyYAxisValueFormatter());
但是,从不调用getFormattedValue()方法,这会在图表的条形上产生类似的结果:0.400 . 我希望条形图上的这个值看起来像这个“$ .40” . 我怎样才能做到这一点?
1 回答
您正在将格式化程序设置在错误的位置 . 您正在YAxis上设置格式化程序 . 相反,您需要在要分配给图表的BarDataSet对象上设置格式化程序 .
创建一个从
ValueFormatter
扩展的Formatter类无论何时使用将数据集分配给图表,都必须放置格式化程序