Android GraphView - Как использовать отдельный LabelFormatter? - PullRequest
0 голосов
/ 19 декабря 2018

Я использую Android GraphView .Я хочу использовать DateAsXAxisLabelFormatter для оси x и пользовательский LabelFormatter для оси y .В противном случае метки оси Y обрезаются.См. Это: вырезанные номера осей y в виде графика Android

Если я использую статическое заполнение, как предложено в ответах на предыдущий вопрос, то иногда возникает дополнительное заполнение.

См. Изображения ниже:

  1. Когда в y-метках есть целые числа (и я дал большой отступ, чтобы справиться с числами, такими как: -0.0231, -0.0450,и т. д.): enter image description here

  2. Когда в y-метках есть плавающие точки (и я дал небольшой отступ, чтобы он выглядел хорошо для чисел, таких как:10, 25, 40 и т. Д.): enter image description here

И я не могу найти сладкое место.

Если бы я мог использовать отдельную для обеих осей, тогда я бы установил setMaximumFractionDigits(2) и обеспечил бы статическое заполнение.Это снять мою проблему.Но я не мог сделать и то и другое, похоже, он перекрывает другое (см. Код для лучшего понимания).Я могу использовать DateAsXAxisLabelFormatter или DefaultLabelFormatter, но не оба одновременно.

Вот код:

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отдельно для обеих осей?

...