gpt4 book ai didi

android - 如何将页面行添加到 Android 中的 EditText?

转载 作者:太空宇宙 更新时间:2023-11-03 12:10:50 24 4
gpt4 key购买 nike

是否可以在 EditText 中显示分页线?

我的意思是这些行:

enter image description here

假设我的 EditText 大小为 500 x 500 像素。我希望这些线条在 500 x 500 的正方形上可见。

是否有内置方法可以做到这一点?我已经尝试过谷歌,但找不到答案。我想我的另一个选择是根据文本高度和行距动态创建图形,这是一个丑陋的解决方法。

最佳答案

来自 android 开发站点的记事本应用程序示例向您展示了如何执行此操作。

http://developer.android.com/resources/samples/NotePad/index.html

看起来像这样(向下滚动代码):

Notepad

大部分相关代码在 this file 中.注意 LinedEditText 内部类。它在 Activity 中定义。它绘制所需的线条。

在 Activity onCreate() 方法中,setContentView(R.id.note_editor) 被设置为 View ,它被定义为here

摘自 here 的 fragment . 更新:由@Pieter888 修改的代码,用于在整个EditText 控件上绘制线条。

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.widget.EditText;

public class LinedEditText extends EditText
{
private Rect mRect;
private Paint mPaint;

public LinedEditText(Context context, AttributeSet attrs)
{
super(context, attrs);
mRect = new Rect();
mPaint = new Paint();
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setColor(0xFF000000);
}

/**
* This is called to draw the LinedEditText object
* @param canvas The canvas on which the background is drawn.
*/
@Override
protected void onDraw(Canvas canvas)
{
int height = canvas.getHeight();
int curHeight = 0;
Rect r = mRect;
Paint paint = mPaint;
int baseline = getLineBounds(0, r);
for (curHeight = baseline + 1; curHeight < height;
curHeight += getLineHeight())
{
canvas.drawLine(r.left, curHeight, r.right, curHeight, paint);
}
super.onDraw(canvas);
}
}

关于android - 如何将页面行添加到 Android 中的 EditText?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10992411/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com