今天在处理一个EditText的时候,想着把EditText做成像一本作业本上的纸一样,每一行都可以由线条隔开,具体效果如下:
1)最开始的思路
一开始的想法是很简单的,找出每一行的高度,然后一行一行地画线不就好了吗,代码如下:
viewHeight = getMeasuredHeight();
viewWidth = getMeasuredWidth();
lineHeight = getLineHeight();
int maxLines = viewHeight / lineHeight + 1;
int i = 0;
int currentLineHeight = 0;
while(i < maxLines){
currentLineHeight += lineHeight;
canvas.drawLine(0, currentLineHeight, viewWidth, currentLineHeight, mPaint);
i++;
}
但是出来的效果一看,高度很明显不够,如下:
看起来好像是高度的问题,那就每一行的高度都加一点呗,再试试:
lineHeight = getLineHeight() + 5;
再来看一下效果,