android中editText中的页面行

android中editText中的页面行,android,xml,Android,Xml,在android中,如何在编辑文本中显示页面行,如图片 使用默认的EditText是不可能的,您需要找到任何自定义库才能将此类功能与EditText一起使用。您可以使用自定义的EditText来执行此操作,如下所示(复制自) 公共类LinedEditText扩展了EditText{ 私有油漆mPaint=新油漆(); public linededitext(上下文){ 超级(上下文); initPaint(); } public LinedEditText(上下文、属性集属性){ 超级(上下文,

在android中,如何在编辑文本中显示页面行,如图片


使用默认的
EditText
是不可能的,您需要找到任何自定义库才能将此类功能与
EditText

一起使用。您可以使用自定义的
EditText
来执行此操作,如下所示(复制自)

公共类LinedEditText扩展了EditText{
私有油漆mPaint=新油漆();
public linededitext(上下文){
超级(上下文);
initPaint();
}
public LinedEditText(上下文、属性集属性){
超级(上下文,attrs);
initPaint();
}
public linededitext(上下文上下文、属性集属性、int-defStyle){
超级(上下文、属性、定义样式);
initPaint();
}
私有void initPaint(){
mPaint.setStyle(油漆、样式、笔划);
mPaint.setColor(0x8000000);
}
@覆盖受保护的void onDraw(画布){
int left=getLeft();
int right=getRight();
int paddingTop=getPaddingTop();
int paddingBottom=getPaddingBottom();
int paddingLeft=getPaddingLeft();
int paddingRight=getPaddingRight();
int height=getHeight();
int lineHeight=getLineHeight();
整数计数=(高度填充顶部填充底部)/线宽;
for(int i=0;i
public class LinedEditText extends EditText {
    private Paint mPaint = new Paint();

    public LinedEditText(Context context) {
        super(context);
        initPaint();
    }

    public LinedEditText(Context context, AttributeSet attrs) {
        super(context, attrs);
        initPaint();
    }

    public LinedEditText(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        initPaint();
    }

    private void initPaint() {
        mPaint.setStyle(Paint.Style.STROKE);
        mPaint.setColor(0x80000000);
    }

    @Override protected void onDraw(Canvas canvas) {
        int left = getLeft();
        int right = getRight();
        int paddingTop = getPaddingTop();
        int paddingBottom = getPaddingBottom();
        int paddingLeft = getPaddingLeft();
        int paddingRight = getPaddingRight();
        int height = getHeight();
        int lineHeight = getLineHeight();
        int count = (height-paddingTop-paddingBottom) / lineHeight;

        for (int i = 0; i < count; i++) {
            int baseline = lineHeight * (i+1) + paddingTop;
            canvas.drawLine(left+paddingLeft, baseline, right-paddingRight, baseline, mPaint);
        }

        super.onDraw(canvas);
    }
}