1. 程式人生 > >Android EditText 改變邊框顏色

Android EditText 改變邊框顏色

第一步:為了更好的比較,準備兩個一模一樣的EditText(當Activity啟動時,焦點會在第一個EditText上,如果你不希望這樣只需要寫一個高度和寬頻為0的EditText即可避免,這裡就不這麼做了),程式碼如下:

  1. <EditText
  2.     android:layout_width="fill_parent"
  3.         android:layout_height="36dip"
  4.         android:background="@drawable/bg_edittext"
  5.         android:padding="5dip"
  6.     android:layout_margin
    ="36dip"
  7.     android:textColorHint="#AAAAAA"
  8.     android:textSize="15dip"
  9.     android:singleLine="true"
  10.     android:hint="請輸入..."
  11. />


接下來建立三個xml檔案,分別為輸入框未獲得焦點時的背景,輸入框獲得焦點時的背景,selector背景選擇器(這裡能獲得輸入框什麼時候獲得和失去焦點),程式碼如下:

bg_edittext_normal.xml(未獲得焦點時)

  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <
    shapexmlns:android="http://schemas.android.com/apk/res/android">
  3.     <solidandroid:color="#FFFFFF"/>
  4.     <cornersandroid:radius="3dip"/>
  5.     <stroke
  6.         android:width="1dip"
  7.         android:color="#BDC7D8"/>
  8. </shape>

bg_edittext_focused.xml(獲得焦點時)

  1. <?xmlversion="1.0"encoding
    ="UTF-8"?>
  2. <shapexmlns:android="http://schemas.android.com/apk/res/android">
  3.     <solidandroid:color="#FFFFFF"/>
  4.     <cornersandroid:radius="3dip"/>
  5.     <stroke
  6.         android:width="1dip"
  7.         android:color="#728ea3"/>
  8. </shape>

bg_edittext.xml(selector選擇器,這方面資料網上很多)

  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <selectorxmlns:android="http://schemas.android.com/apk/res/android">
  3.         <itemandroid:state_window_focused="false"android:drawable="@drawable/contact_edit_edittext_normal"/>
  4.        <itemandroid:state_focused="true"android:drawable="@drawable/contact_edit_edittext_focused"/>
  5. </selector>


這樣就OK了,效果圖如下:

第二個輸入框邊框變為深色,是不是這樣更友好點。