这是一个小伙伴写的(他也是抄的,作者已佚名),我觉得写的挺好,自己又改了改,在此记录一下:
public class LinedTextView extends TextView {
public LinedTextView(Context context) {
super(context);
}
public LinedTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public LinedTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
protected void onDraw(Canvas canvas) {
Paint mPaint = new Paint();
// mPaint.setColor(0x80000000);
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeWidth(1);
mPaint.setColor(Color.BLACK);
int right = getRight();
int paddingTop = getPaddingTop();
int paddingBottom = getPaddingBottom();
int paddingLeft = getPaddingLeft();
int paddingRight = getPaddingRight();
int height = getHeight();
int lineHeight = getLineHeight();
int spacingHeight = (int) Utils.dip2px(2);
if (Build.VERSION.SDK_INT >= 16) {
spacingHeight = (int) getLineSpacingExtra();
}
height = height + spacingHeight;//把最后一个行间距也计算进去
int count = (height - paddingTop - paddingBottom) / lineHeight;
for (int i = 0; i < count; i++) {
int baseline = lineHeight * (i + 1) + paddingTop - spacingHeight / 2;
canvas.drawLine(0 + paddingLeft, baseline, right - paddingRight, baseline, mPaint);
}
super.onDraw(canvas);
}
}
如果你觉得帮到了你,请给作者打赏一口饭吃: