天天看點

Android系列講座(2):為TextView元件加上邊框

本文為原創,如需轉載,請注明作者和出處,謝謝! 

<a href="http://www.cnblogs.com/nokiaguy/archive/2010/07/01/1769079.html">源代碼</a>

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格式的圖像。

本文轉自銀河使者部落格園部落格,原文連結http://www.cnblogs.com/nokiaguy/archive/2010/07/15/1777835.html如需轉載請自行聯系原作者

銀河使者

繼續閱讀