在 Android 中实现带边框的 TextView
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" />