如何在TextView中有一行分隔线

时间:2013-07-18 10:11:29

标签: android

我想在TextView的每一行之间加一条线。 原始TextView可以这样做吗? 如果没有,我该怎么办?

separating line


解答:

感谢@Slartibartfast参考和建议。我做了一个定制的TextView。我得到这样的东西。

textview with line separator

这就是我想要的!

代码:

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);
}

}

1 个答案:

答案 0 :(得分:3)

使用TextView

下方的以下代码行
<View android:layout_width="fill_parent"
    android:layout_height="1px"
    android:background="@android:color/background_dark" />

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

您也可以将ListView与分隔符一起使用。