如何在AChartEngine中设置CombinedXYChart的日期格式?

时间:2013-03-10 09:23:10

标签: android achartengine

我可以在时间图表中设置日期格式,如下所示

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);

下图: enter image description here

任何想法?

2 个答案:

答案 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,那么它会更好,但我认为它仍然是优雅且非常简单的解析。