2

我可以像这样在时间表中设置日期格式

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

下图: 在此处输入图像描述

有任何想法吗?

4

2 回答 2

1

在 CombinedXYChart 案例中,您将不得不使用自定义标签:

// disable the default labels
renderer.setXLabels(0);
// add several such labels
renderer.addXTextLabel(x, "label");
于 2013-03-13T15:25:15.187 回答
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会更好,但是我认为它仍然是优雅且非常简单的解决方案。

于 2014-06-05T17:46:21.823 回答