我怎么可以在TextView中一排分隔线 [英] How can I have a row separating line in TextView

查看:481
本文介绍了我怎么可以在TextView中一排分隔线的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在的TextView 每行之间的线。
可以原的TextView 做到这一点?
如果不是这样,我该怎么办呢?


答:

由于@Slartibartfast参考和建议。我做了一个自定义的的TextView 。我得到这样的事情。

这是我想要的!

在code:

 公共类LinedTextView扩展的TextView {私人矩形mRect;
私人涂料mPaint;公共LinedTextView(上下文的背景下){
    超级(上下文);
    初始化();
}公共LinedTextView(上下文的背景下,ATTRS的AttributeSet){
    超(背景下,ATTRS);
    初始化();}公共LinedTextView(上下文的背景下,ATTRS的AttributeSet,诠释defStyle){
    超(背景下,ATTRS,defStyle);
    初始化();
}私人无效初始化(){    mRect =新的矩形();
    mPaint =新的油漆();
    mPaint.setStyle(Paint.Style.STROKE);
    mPaint.setColor(0x800000ff);
}@覆盖
保护无效的onDraw(帆布油画){    INT CNT = getLineCount();
    矩形R = mRect;
    涂料粉刷= mPaint;
    的for(int i = 0; I< CNT;我++){
        INT基线= getLineBounds(I,R);
        canvas.drawLine(r.left,基线+ 1,r.right,基线+ 1,油漆);
    }    super.onDraw(画布);
}}


解决方案

使用低于code的下面一行的的TextView

 <景观的android:layout_width =FILL_PARENT
    机器人:layout_height =1像素
    机器人:背景=@机器人:彩色/ background_dark/>

您可以根据您的需要进行配置。

您也可以使用的ListView 与分。

I want to have a line between each row in TextView. Can original TextView do this? If not, how can I do it?


ANSWER:

Thanks to @Slartibartfast reference and advice. I made a customized TextView. And I get something like this.

This is what I want!

The code:

public class LinedTextView extends TextView {

private Rect mRect;
private Paint mPaint;

public LinedTextView(Context context) {
    super(context);
    initialize();
}

public LinedTextView(Context context, AttributeSet attrs) {
    super(context, attrs);
    initialize();

}

public LinedTextView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    initialize();
}

private void initialize() {

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

@Override
protected void onDraw(Canvas canvas) {

    int cnt = getLineCount();
    Rect r = mRect;
    Paint paint = mPaint;
    for (int i = 0; i < cnt; i++) {
        int baseLine = getLineBounds(i, r);
        canvas.drawLine(r.left, baseLine + 1, r.right, baseLine + 1, paint);
    }

    super.onDraw(canvas);
}

}

解决方案

Use the following line of code below your TextView

<View android:layout_width="fill_parent"
    android:layout_height="1px"
    android:background="@android:color/background_dark" />

You can configure it according to your need.

You can also use ListView with divider.

这篇关于我怎么可以在TextView中一排分隔线的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆