Я использую Android GraphView .Я хочу использовать DateAsXAxisLabelFormatter
для оси x и пользовательский LabelFormatter
для оси y .В противном случае метки оси Y обрезаются.См. Это: вырезанные номера осей y в виде графика Android
Если я использую статическое заполнение, как предложено в ответах на предыдущий вопрос, то иногда возникает дополнительное заполнение.
См. Изображения ниже:
Когда в y-метках есть целые числа (и я дал большой отступ, чтобы справиться с числами, такими как: -0.0231, -0.0450,и т. д.):
Когда в y-метках есть плавающие точки (и я дал небольшой отступ, чтобы он выглядел хорошо для чисел, таких как:10, 25, 40 и т. Д.):
И я не могу найти сладкое место.
Если бы я мог использовать отдельную для обеих осей, тогда я бы установил 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
отдельно для обеих осей?