通过这个SO回答Android: Ruled/horizonal lines in Textview以及我正在阅读的书中的一些代码,我想出了这个:
@Override
public void onDraw(Canvas canvas){
// color the paper
canvas.drawColor(paperColor);
// draw ruled lines
int lineCount = getLineCount();
Rect r = rect;
for(int i = 0; i < lineCount; i++){
int baseLine = getLineBounds(i, r);
canvas.drawLine(r.left, baseLine+1, r.right, baseLine+1, linePaint);
}
// draw margin
canvas.drawLine(margin, 0, margin, getMeasuredHeight(), marginPaint);
// move the text across the margin
canvas.save();
canvas.translate(margin, 0);
// render the text
super.onDraw(canvas);
canvas.restore();
}
但是,如果我向EditText
添加更多行文本,我只会获得格线。这是因为getLineCount()
已被使用。基本上,我希望EditText
看起来像笔记本中的页面。
需要对代码进行哪些修改?
答案 0 :(得分:1)
不是使用getLineCount()
,也许你可以这样做:
private int getDrawableLineCount() {
return getMeasuredHeight() % getLineHeight();
}
行高可能需要调整,但这应该让你开始。