private void drawLeftAxisLabel(Canvas canvas, int position) { Paint axisLabelPaint = labelPaints[LEFT]; String text = getLeftLabel(position); if (position == 0) { canvas.drawText(text, 0, -axisLabelPaint.ascent(), axisLabelPaint); } else if (position == HORIZONTAL_LINE_NUMBER) { float y = chartView.getContentHeight() + (axisLabelPaint.ascent() + axisLabelPaint.descent()) / 2; canvas.drawText(text, 0, y, axisLabelPaint); } else { float y = position / (float) HORIZONTAL_LINE_NUMBER * chartView.getContentHeight(); y = y - (axisLabelPaint.ascent() + axisLabelPaint.descent()) / 2; canvas.drawText(text, 0, y, axisLabelPaint); } }
@Override public void drawHorizontalLines(Canvas canvas) { Paint paint = linePaints[LEFT]; paint.setColor(borderColor); canvas.drawLine(0, 0, chartView.getWidth(), 0, linePaints[LEFT]); paint.setColor(lineColor); for (int i = 1; i < HORIZONTAL_LINE_NUMBER; i++) { float yPos = (i / (float) HORIZONTAL_LINE_NUMBER) * chartView.getContentHeight(); canvas.drawLine(0, yPos, chartView.getWidth(), yPos, linePaints[LEFT]); } paint.setColor(borderColor); canvas.drawLine( 0, chartView.getContentHeight(), chartView.getWidth(), chartView.getContentHeight(), paint); }
@Override public void drawVerticalLines(Canvas canvas) { Paint linePaint = linePaints[BOTTOM]; linePaint.setColor(borderColor); canvas.drawLine(0, 0, 0, chartView.getContentHeight(), linePaint); linePaint.setColor(lineColor); for (int i = 1; i < VERTICAL_LINE_NUMBER; i++) { float x = (i / (float) VERTICAL_LINE_NUMBER) * chartView.getWidth(); canvas.drawLine(x, 0, x, chartView.getContentHeight(), linePaint); } linePaint.setColor(borderColor); canvas.drawLine( chartView.getWidth() - 1, 0, chartView.getWidth() - 1, chartView.getContentHeight(), linePaint); }