WEB开发网
开发学院手机开发Android 开发 Android 为TextView组件加上边框 阅读

Android 为TextView组件加上边框

 2010-07-15 20:05:00 来源:WEB开发网   
核心提示:Android系统本身提供的TextView组件并不支持边框,但可以对TextView进行扩展来添加边框,Android 为TextView组件加上边框,我们可以使用如下两种方法为TextView组件添加边框,1. 编写一个继承TextView类的自定义组件,需要制作带边框的透明png图像(除了边框,图像的其他部分都是

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

}

}

<!--[endif]-->

注意:如果想让TextView透明,也就是 将TextView的父视图的背景色作为TextView组件的背景色,如图2所示的第3个TextView组件,需要制作带边框的透明png图像(除了边框,图像的其他部分都是透明的),然后再生成9-patch格式的图像。via:http://www.cnblogs.com/nokiaguy/archive/2010/07/15/1777835.html

Tags:Android TextView 组件

编辑录入:coldstar [复制链接] [打 印]
赞助商链接