学而实习之 不亦乐乎

在 Android 中实现带边框的 TextView

2023-12-11 21:52:58

Android SDK本身提供的TextView控件并不支持边框,所以要想实现这一效果的话我们可以通过自定义一个继承自 TextView 的控件来实现。

一、添加背景

 

 

 

二、自定控件

首先定义一个BorderTextView类, extends TextView 。

public class BorderTextView extends TextView {

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

    @Override
    protected void onDraw(Canvas canvas) {  
        super.onDraw(canvas);  

        // 实例化一支画笔  
        Paint paint = new Paint();  

        // 设置所绘制的边框颜色为黑色  
        paint.setColor(android.graphics.Color.WHITE);  

        // 绘制上边框  
        canvas.drawLine(0, 0, this.getWidth() - 1, 0, paint);  

        // 绘制左边框  
        canvas.drawLine(0, 0, 0, this.getHeight() - 1, paint);  

        // 绘制右边框  
        canvas.drawLine(this.getWidth() - 1, 0, this.getWidth() - 1,  
                this.getHeight() - 1, paint);  

        // 绘制上边框  
        canvas.drawLine(0, this.getHeight() - 1, this.getWidth() - 1,  
                this.getHeight() - 1, paint);  
    }
}

然后在xml布局文件中加入这个控件,这里控件的类型要写上全名:

<com.ipac.BorderTextView
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:textColor="#000000" 
    android:layout_margin="20dp"
    android:text="BorderTextView" />