public class LinedEditText extends EditText { private Paint linePaint; private float margin; private int paperColor; private Rect mRect; public LinedEditText(Context paramContext, AttributeSet paramAttributeSet) { super(paramContext, paramAttributeSet); mRect = new Rect(); linePaint = new Paint(); } protected void onDraw(Canvas paramCanvas) { paramCanvas.drawColor(this.paperColor); Rect r = mRect; int lineCount = getLineCount(); int height = getHeight(); int lineHeight = getLineHeight(); int m = 1 + height / lineHeight; if (lineCount < m) lineCount = m; int n = getLineBounds(0, r); paramCanvas.drawLine(0.0F, n, getRight(), n, this.linePaint); for (int i = 0;; i++) { if (i >= lineCount) { setPadding(10 + (int) this.margin, 0, 0, 0); super.onDraw(paramCanvas); paramCanvas.restore(); return; } n += lineHeight; paramCanvas.drawLine(0.0F, n, getRight(), n, this.linePaint); paramCanvas.save(); } } }
效果图如下: