Android GraphView-如何使用单独的LabelFormatter?

时间:2018-12-19 08:19:45

标签: android android-graphview

我正在使用Android GraphView。我想将DateAsXAxisLabelFormatter用于 x轴,并将自定义LabelFormatter用于 y轴。否则,y轴标签将被切除。看到这个:android graph-view y axis numbers being cut out

如果我按照上述问题的答案使用静态填充,则有时会有额外的填充。

查看下图:

  1. 当y标签中存在整数时(我已经使用较大的填充来处理-0.0231,-0.0450等数字): enter image description here

  2. 当y标签中有浮点(并且我给了很小的填充以使其对于像10、25、40等的数字看起来不错时): enter image description here

我找不到最佳位置。

如果两个轴都可以使用单独的轴,则可以设置setMaximumFractionDigits(2),并提供静态填充。那消除了我的问题。但是我不能两者都做,它似乎会覆盖另一个(请参阅代码以更好地理解)。我可以使用DateAsXAxisLabelFormatterDefaultLabelFormatter,但不能同时使用两者。

这是代码:

NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(2);
nf.setMaximumIntegerDigits(2);
graphView.getGridLabelRenderer().setLabelFormatter(new DateAsXAxisLabelFormatter(MainActivity.this, simpleDateFormat));
graphView.getGridLabelRenderer().setLabelFormatter(new DefaultLabelFormatter(nf, nf)); // This overrides the previous LabelFormatter

// If I try to set them both together. I get this error.
graphView.getGridLabelRenderer().setLabelFormatter(new DateAsXAxisLabelFormatter(MainActivity.this, simpleDateFormat), nf);
//setLabelFormatter (LabelFormatter) in GridLabelRenderer cannot be applied to (DateAsXAxisLabelFormatter, java.text.NumberFormat)

如何将两个LabelFormatter分别用于两个轴?

0 个答案:

没有答案