Android(Java):邊框

 
<RelativeLayout
                   android:layout_width="fill_parent"
                   android:layout_height="40dp"
                   android:background="@drawable/border_textview"
                   >
------------------------------------------------------------------
drawable/border_textview:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
      <shape  android:shape="rectangle">
            <stroke android:width="1dp" android:color="#ff8f8f8f" />
            <solid android:color="#ffffff" />
        </shape>
   </item>
</layer-list>
------------------------------------------------------------------
           <EditText
               android:id="@+id/usernametv"
               android:layout_width="80dp"
               android:bufferType="normal"
               android:singleLine="true"
               android:gravity="center"
               android:layout_gravity="center"
               android:layout_height="40dp"
               android:editable="false"
               android:hint="@string/username"
               android:background="@null"
               android:textSize="17sp"
               />
           <EditText
               android:id="@+id/rusername"
               android:layout_width="200dp"
               android:layout_centerHorizontal="true"
               android:layout_height="40dp"
               android:layout_toRightOf="@id/usernametv"
               android:hint="@string/rusername"
               android:singleLine="true"
               android:textSize="13sp"
               android:background="@null"
               />
               </RelativeLayout>

 

 

在進行Android界面開發的時候,你想給TextView加個邊框,找了半天發現沒有這個屬性,是不是有點蛋疼呢。下面就總結一下有哪些方法能夠實現邊框效果。

1.嵌套一層,利用內容的margin或者padding的留白加容器的背景來實現邊框效果。

其實這個道理很簡單,很早的時候那時候我們還用table做html頁面佈局的時候,我們就是使用cellspacing來實現table的邊框的。現在我們也利用同樣的想法來實現。

Android下實現邊框效果 方案一

Android下實現邊框效果 方案一

其中padding產生留白,就形成類似邊框的效果。

    

當然內部的容器也是需要有顏色的,如果想實現內部透明的效果則需要將內部View的背景色跟背景的顏色保持一致,這是不太方便的地方。

2.使用9-patch(九宮格)的背景圖片來實現邊框效果。

做一個有邊框的9-patch圖片,作爲要有邊框的View的背景圖即可。這樣你還可以控制哪邊有邊框,哪邊無邊框,這種方法是比較好的一種方法,而且沒有多餘的View嵌套。另外你還可以實現圓角邊框等效果。

Android下實現邊框效果 方案二

Android下實現邊框效果 方案二

如果你還不瞭解關於9-patch的內容,請移步。你需要做一個有邊框的png圖片,使用sdk的tools文件夾下的draw9patch.bat工具,你可以輕鬆生成9-patch圖片。工具用起來很簡單。左側和頂部的線用於擴展重複顯示的內容,右側和底部的線用於控制內容顯示的位置。在這裏我要先感謝國家,我們現在已經可以自由的訪問Android開發者站點

3.利用shape的stroke來實現邊框效果。

當然你可以使用shape中的stroke來實現border的效果。

< xml version="1.0"   encoding="utf-8"   >  

然後你可以引用這個shape作爲背景就可以實現邊框效果。關於更多關於shape的內容請移步

最終的效果展示:

當然還有很多其他的變通方法,比如你也可以添加一個view把寬度設置爲1dp,作爲邊框。這個就需要你在實際開發中變通使用了。

本人還是Android開發的小白級人員,如有謬誤還請不吝指教。
發佈了51 篇原創文章 · 獲贊 2 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章