<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 312, 文章 - 14, 評論 - 1393, 引用 - 0
    數(shù)據(jù)加載中……

    《Android/OPhone開發(fā)完全講義》連載(6):為TextView組件加上邊框

    本文為原創(chuàng),如需轉(zhuǎn)載,請注明作者和出處,謝謝!

    《Android/OPhone 開發(fā)完全講義》目前計算機(jī)類銷售總排名:互動網(wǎng)(china-pub)第3名,當(dāng)當(dāng)網(wǎng)新書熱賣榜銷售總排名第4名

    本文為新書《Android/OPhone 開發(fā)完全講義》的內(nèi)容連載。《Android/OPhone開發(fā)完全講義》一書現(xiàn)已出版,敬請關(guān)注。

    購 買:

    互動網(wǎng)(china- pub)
    當(dāng) 當(dāng)(dangdang)
    卓越亞馬遜

    《Android/OPhone 開發(fā)完全講義》目錄

    源代碼下載




    上一篇:Notification 與狀態(tài)欄信息

    Android系統(tǒng)本身提供的TextView組件并不支持邊框,但可以對TextView進(jìn)行擴(kuò)展來添加邊框。我們可以使用如下兩種方法為TextView組件添加邊框。

    1.  編寫一個繼承TextView類的自定義組件,并在onDraw事件方法中畫邊框。

    2.  使用9-patch格式的圖像作為TextView的背景圖來設(shè)置邊框(這個背景圖需要帶一個邊框)。

    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();
            
    //  將邊框設(shè)為黑色
            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);
        }
    }

    在上面的代碼中將邊框設(shè)成了黑色,讀者也可以根據(jù)需要將邊框設(shè)置成任何的顏色,或從XML布局文件中讀取相應(yīng)的顏色值,關(guān)于自定義組件的詳細(xì)介紹請讀者參閱4.2節(jié)的內(nèi)容。

    雖然可以直接使用帶邊框的圖像作為TextView組件的背景來設(shè)置邊框,但當(dāng)TextView的大小變化時,背景圖像上的邊框也隨之變粗或變細(xì),這樣看起來并不太舒服。為了解決這個問題,可以采用9-patch格式的圖像來作為TextView組件的背景圖。我們可以使用<Android SDK安裝目錄>\tools\draw9patch.bat命令來啟動“Draw 9-patch”工具。制作9-patch格式的圖像也很簡單,將事先做好的帶邊框的png圖像(必須是png格式的圖像)用這個工具打開,并在外邊框的上方和左側(cè)畫一個象素點,然后保存即可,如圖1所示。9-patch格式的圖像必須以9.png結(jié)尾,例如,abc.9.png。在生成完9-patch格式的圖像后,使用<TextView>標(biāo)簽的android:background屬性指定相應(yīng)的圖像資源即可。

                                 圖1

    運行本例后,顯示的效果如圖2所示。

     


                   圖2

    注意:如果想讓TextView透明,也就是將TextView的父視圖的背景色作為TextView組件的背景色,如圖2所示的第3TextView組件,需要制作帶邊框的透明png圖像(除了邊框,圖像的其他部分都是透明的),然后再生成9-patch格式的圖像。







    Android開發(fā)完全講義(第2版)(本書版權(quán)已輸出到臺灣)

    http://product.dangdang.com/product.aspx?product_id=22741502



    Android高薪之路:Android程序員面試寶典 http://book.360buy.com/10970314.html


    新浪微博:http://t.sina.com.cn/androidguy   昵稱:李寧_Lining

    posted on 2010-07-15 10:37 銀河使者 閱讀(2894) 評論(0)  編輯  收藏 所屬分類: 原創(chuàng)移動(mobile)Android/OPhone

    主站蜘蛛池模板: 亚洲乱人伦中文字幕无码| 久久亚洲高清综合| 亚洲v高清理论电影| 黑人大战亚洲人精品一区| 亚洲高清成人一区二区三区| 久久久精品午夜免费不卡| 色播在线永久免费视频网站| A毛片毛片看免费| 亚洲av无码日韩av无码网站冲| 国产成人精品日本亚洲网址 | 不卡视频免费在线观看| 九九热久久免费视频| a级毛片在线视频免费观看| 两个人看的www高清免费观看| 久久成人免费电影| 91在线老王精品免费播放| 免费A级毛片无码A∨免费| 一二三四在线观看免费高清中文在线观看 | 国产亚洲无线码一区二区| 国产成人精品日本亚洲| 99亚洲精品高清一二区| 亚洲精品天堂成人片?V在线播放| 在线精品免费视频| 国产又大又黑又粗免费视频| 亚洲成a人无码av波多野按摩| 国产AⅤ无码专区亚洲AV| 久久青草亚洲AV无码麻豆| 亚洲国产av一区二区三区丶| 国产精品久久久亚洲| 在线电影你懂的亚洲| 久久综合久久综合亚洲| 美女露隐私全部免费直播| 巨胸狂喷奶水视频www网站免费| 久久久久成人片免费观看蜜芽| 91精品免费久久久久久久久| 免费无码又爽又高潮视频 | 香蕉视频在线免费看| 18女人毛片水真多免费| 免费无码看av的网站| 亚洲精品无码Av人在线观看国产| 亚洲神级电影国语版|