Android 满是横线的文本

Android 满是横线的文本,android,android-edittext,android-canvas,Android,Android Edittext,Android Canvas,复习一下这个答案和我正在阅读的书中的一些代码,我得出了以下结论: @Override public void onDraw(Canvas canvas){ // color the paper canvas.drawColor(paperColor); // draw ruled lines int lineCount = getLineCount(); Rect r = rect;

复习一下这个答案和我正在阅读的书中的一些代码,我得出了以下结论:

    @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();
    }  
@覆盖
公共空白onDraw(画布){
//给纸上色
帆布。drawColor(paperColor);
//画直纹线
int lineCount=getLineCount();
Rect r=Rect;
对于(int i=0;i
但是,如果我在
EditText
中添加更多的文本行,我只会得到规则行。这是因为使用了
getLineCount()
。基本上,我希望
EditText
看起来像笔记本上的一页


需要对代码进行哪些修改?

如果不使用
getLineCount()
,您可以执行以下操作:

private int getDrawableLineCount() {
   return getMeasuredHeight() % getLineHeight();
}

线条高度可能需要调整,但这应该可以让您开始了。

只需设置一个可绘制的背景,无需延伸背景EditText@pskink
9PatchDrawable
?:)