19 package jarmos.app.misc.rb;
21 import java.text.DecimalFormat;
23 import org.achartengine.chart.LineChart;
24 import org.achartengine.model.XYMultipleSeriesDataset;
25 import org.achartengine.model.XYSeries;
26 import org.achartengine.renderer.XYMultipleSeriesRenderer;
43 private static final long serialVersionUID = 5178056223442588108L;
46 private int seriesNum;
48 private int pointInSeries;
50 private boolean progressLabel;
52 public SingleLabelChart(XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer,
int s,
int p,
boolean pr) {
53 super(dataset, renderer);
60 public void drawChartValuesText(android.graphics.Canvas canvas, XYSeries series, android.graphics.Paint paint,
61 float[] points,
int seriesIndex)
67 if ((pointInSeries >= 0) && (pointInSeries < points.length)) {
69 double accuracyPlace = (series.getMaxY() - series.getMinY()) / 100;
71 double decimalPlace = 0.000001;
72 while (accuracyPlace >= decimalPlace * 10)
74 accuracyPlace = decimalPlace;
76 float verticalAdjustment;
77 switch (seriesIndex % 3) {
79 verticalAdjustment = 0;
82 verticalAdjustment = 8f;
85 verticalAdjustment = -8f;
94 for (
int k = 0; k < points.length; k += 2) {
95 if (k == pointInSeries && seriesIndex / 3 == seriesNum)
96 super.drawText(canvas,
roundToNthPlace(series.getY(k / 2), accuracyPlace), points[k],
97 (points[k + 1] - 3.5f + verticalAdjustment), paint, 0);
103 for (
int k = 0; k < points.length; k += 2) {
104 if (k > 3 && seriesIndex == seriesNum)
105 super.drawText(canvas,
"working", points[k] + 1f, points[k + 1] - 1f, paint, 0);
115 while (count <= Math.abs(toRound))
117 int placesBeforeDecimal = (int) Math.log10(count);
119 int placesAfterDecimal = -(int) Math.log10(accPlace);
121 String forDecimalFormat =
"";
123 if (placesAfterDecimal <= 0)
124 placesAfterDecimal = 0;
127 forDecimalFormat +=
"-";
128 for (
int i = 0; i < placesBeforeDecimal; i++)
129 forDecimalFormat +=
"0";
130 if (placesAfterDecimal > 0)
131 forDecimalFormat +=
".";
132 for (
int i = 0; i < placesAfterDecimal; i++)
133 forDecimalFormat +=
"0";
135 DecimalFormat decimal_format =
new DecimalFormat(forDecimalFormat);
136 return decimal_format.format(toRound);
void drawChartValuesText(android.graphics.Canvas canvas, XYSeries series, android.graphics.Paint paint, float[] points, int seriesIndex)
static String roundToNthPlace(double toRound, double accPlace)
SingleLabelChart(XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, int s, int p, boolean pr)
A line chart implementation with a single label.