1. 重写EditText
1 public class LinedEditText extends EditText { 2 private Paint linePaint; 3 private float margin; 4 private int paperColor; 5 6 public LinedEditText(Context paramContext, AttributeSet paramAttributeSet) { 7 super(paramContext, paramAttributeSet); 8 this.linePaint = new Paint(); 9 }10 11 protected void onDraw(Canvas paramCanvas) {12 paramCanvas.drawColor(this.paperColor);13 int i = getLineCount();14 int j = getHeight();15 int k = getLineHeight();16 int m = 1 + j / k;17 if (i < m)18 i = m;19 int n = getCompoundPaddingTop();20 paramCanvas.drawLine(0.0F, n, getRight(), n, this.linePaint);21 for (int i2 = 0;; i2++) {22 if (i2 >= i) {23 setPadding(10 + (int) this.margin, 0, 0, 0);24 super.onDraw(paramCanvas);25 paramCanvas.restore();26 return;27 }28 n += k;29 paramCanvas.drawLine(0.0F, n, getRight(), n, this.linePaint);30 paramCanvas.save();31 }32 }33 34 }
这段代码,并不复杂没有加注释,学过Java的同学应该不会吃力。
2.在布局文件中使用
16 7 13 14
注意:使用EditText控件时,不再使用EditText前缀,而是重写之后完整路径的包名+类名(如com.example.storetest.LinedEditText)。
3.在使用时与正常调用EditText时一致。——整理自网络,多多分享