1

I'm using Android GraphView. I want to use DateAsXAxisLabelFormatter for x-axis, and a custom LabelFormatter for y-axis. Otherwise the y-axis labels gets cut off. See this: android graph-view y axis numbers being cut out

If I use static padding as suggested in the answers of above question, then there is extra padding sometimes.

See the images below:

  1. When there are integers in y-labels (and I have given large padding to cope with numbers like: -0.0231, -0.0450, etc.): enter image description here

  2. When there are floating points in y-labels (and I have give small padding to make it look nice for numbers like: 10, 25, 40, etc): enter image description here

And I'm unable to find the sweet spot.

If I could use a separate for both of the axes then I would set setMaximumFractionDigits(2), and provide a static padding. That remove my problem. But I couldn't do both, it seem to override the other (see the code for better understanding). I can either use DateAsXAxisLabelFormatter or a DefaultLabelFormatter but not both at the same time.

Here is the code:

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)

How do I use both of the LabelFormatter separately for both axes?

Nikhil Wagh
  • 1,376
  • 1
  • 24
  • 44

0 Answers0