gpt4 book ai didi

Android:在 TextView 上画线

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:22:27 27 4
gpt4 key购买 nike

我曾在 Android: Ruled/horizonal lines in Textview 上提出过一个标题为“Android:TextView 中的规则/水平线”的问题.但我没有得到要求的答案。所以我打算通过 java 在 TextView 上画线来做到这一点。有没有办法在 TextView 中画线?或者,如果我从 Java 代码中获取行尾,那么我将能够为每一行添加 TextView 。任何帮助将不胜感激。

最佳答案

我使用了在 EditText 中的每行文本之间画线的技术,然后我将通过设置 setKeyListener( null) 到自定义 EditText 对象,这样 EditText 就像一个 TextView :)


在显示的每行文本之间绘制线条的自定义 EditText:

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

// we need this constructor for LayoutInflater
public LinedEditText(Context context, AttributeSet attrs) {
super(context, attrs);

mRect = new Rect();
mPaint = new Paint();
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setColor(0x800000FF);
}

@Override
protected void onDraw(Canvas canvas) {
int count = getLineCount();
Rect r = mRect;
Paint paint = mPaint;

for (int i = 0; i < count; i++) {
int baseline = getLineBounds(i, r);

canvas.drawLine(r.left, baseline + 1, r.right, baseline + 1, paint);
}

super.onDraw(canvas);
}
}

现在在您需要 TextView 的地方使用 LinedEditText 类的对象并使其不可编辑。

一个例子:

public class HorizontalLine extends Activity{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle("Android: Ruled/horizonal lines in Textview");

LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
LayoutParams textViewLayoutParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

LinedEditText et = new LinedEditText(this, null);
et.setText("The name of our country is Bangladesh. I am proud of my country :)");
et.setLayoutParams(textViewLayoutParams);
et.setKeyListener(null);

ll.addView(et);
this.setContentView(ll);

}

}

et.setKeyListener(null) 使 EditText 不可编辑,因此它的行为类似于 TextView。


输出:

enter image description here

光标问题:

如果你只使用 et.setKeyListener(null) 那么它只是不听键但是用户可以在 EditText 上看到光标。如果您不想要此光标,只需添加以下行来禁用 EditText:

 et.setEnabled(false);

关于Android:在 TextView 上画线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10754265/

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