本文為原創,如需轉載,請註明作者和出處,謝謝!
原始碼
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所示的第3個TextView組件,需要製作帶邊框的透明png映像(除了邊框,映像的其他部分都是透明的),然後再產生9-patch格式的映像。