我可以在时间图表中设置日期格式,如下所示
final GraphicalView view = ChartFactory.getTimeChartView(context, dataset,
mRenderer, "dd-MMM-yyyy");
但在ComninedXYChart
的情况下我不能这样做String[] types = new String[] { TimeChart.TYPE , ScatterChart.TYPE, ScatterChart.TYPE};
final GraphicalView view =
ChartFactory.getCombinedXYChartView(context, dataset, mRenderer, types);
下图:
任何想法?
答案 0 :(得分:1)
在CombinedXYChart案例中,您必须使用自定义标签:
// disable the default labels
renderer.setXLabels(0);
// add several such labels
renderer.addXTextLabel(x, "label");
答案 1 :(得分:0)
实际上我找到了更好的方法。诀窍是使用方法setXLabelFormat结合重载的NumberFormat:
SimpleDateFormat mDateFormatter = new SimpleDateFormat("d MMM");
renderer.setXLabelFormat(new NumberFormat() {
@Override
public StringBuffer format(double value, StringBuffer buffer, FieldPosition field) {
return mDateFormatter.format(value, buffer, field);
}
@Override
public StringBuffer format(long value, StringBuffer buffer, FieldPosition field) {
return mDateFormatter.format(value, buffer, field);
}
@Override
public Number parse(String string, ParsePosition position) {
return mDateFormatter.parse(string, position).getTime();
}
});
当然,如果方法setXLabelFormat接受Format(它是所有格式的基类)而不是NumberFormat,那么它会更好,但我认为它仍然是优雅且非常简单的解析。