@Override public void onDraw(Canvas canvas) { if (layoutInfo == null) layoutInfo = layout(); float width = containerView.getWidth(); float margin = 10f; canvas.save(); canvas.translate(width - layoutInfo.frame.width() - margin, margin); // draw background canvas.drawRect(layoutInfo.frame, backgroundPaint); canvas.drawRect(layoutInfo.frame, borderPaint); // draw markers float x = layoutInfo.getMarkerX(); float lineLeft = layoutInfo.getMarkerLineLeft(); float lineRight = layoutInfo.getMarkerLineRight(); for (int i = 0; i < entryList.size(); i++) { Entry entry = entryList.get(i); float y = layoutInfo.margin + (layoutInfo.labelHeight + layoutInfo.labelSpacing) * (0.5f + i); canvas.drawLine(lineLeft, y, lineRight, y, entry.getPainter().getDrawConfig().getLinePaint()); tempPoint.set(x, y); IPointRenderer pointRenderer = entry.painter.getPointRenderer(); pointRenderer.drawPoint(canvas, tempPoint, entry.painter.getDrawConfig()); } // draw labels x = layoutInfo.getLabelStartX(); for (int i = 0; i < entryList.size(); i++) { Entry entry = entryList.get(i); float y = layoutInfo.margin + (layoutInfo.labelHeight + layoutInfo.labelSpacing) * i + layoutInfo.labelHeight; canvas.drawText(entry.getLabel(), x, y, labelPaint); } canvas.restore(); }