控件--TextView组件加上边框

Android系统本身提供的TextView组件并不支持边框,但可以对TextView进行扩展来添加边框。我们可以使用如下两种方法为TextView组件添加边框。

1.  编写一个继承TextView类的自定义组件,并在onDraw事件方法中画边框。

2.  使用9-patch格式的图像作为TextView的背景图来设置边框(这个背景图需要带一个边框)。

onDraw事件方法中画边框非常容易,只需 要画TextView组件的上、下、左、右四个边即可。这个自定义组件的代码如下:

package net.blogjava.mobile;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.widget.TextView;

public class BorderTextView extends TextView
{
    @Override
    
protected void onDraw(Canvas canvas)
    {
        
super.onDraw(canvas);
        Paint paint 
= new Paint();
        
//  将边框设为黑色
        paint.setColor(android.graphics.Color.BLACK);
        
//  画TextView的4个边
        canvas.drawLine(00this.getWidth() - 10, paint);
        canvas.drawLine(
000this.getHeight() - 1, paint);
        canvas.drawLine(
this.getWidth() - 10this.getWidth() - 1this.getHeight() - 1, paint);
        canvas.drawLine(
0this.getHeight() - 1this.getWidth() - 1this.getHeight() - 1, paint);
    }
    
public BorderTextView(Context context, AttributeSet attrs)
    {
        
super(context, attrs);
    }
}

注意:如果想让TextView透明,也就是 将TextView的父视图的背景色作为TextView组件的背景色,如图2所示的第3TextView组件,需要制作带边框的透明png图像(除了边框,图像的其他部分都是透明的),然后再生成9-patch格式的图像。

 

其实最简单方便的方法就是,background 指定drawable的xml文件,这样最方便。

 

 

你可能感兴趣的:(textview)