Android系列讲座(2):为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( 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);
    }
    
public  BorderTextView(Context context, AttributeSet attrs)
    {
        
super (context, attrs);
    }
}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值