Android EditText 改變邊框顏色
阿新 • • 發佈:2019-01-04
第一步:為了更好的比較,準備兩個一模一樣的EditText(當Activity啟動時,焦點會在第一個EditText上,如果你不希望這樣只需要寫一個高度和寬頻為0的EditText即可避免,這裡就不這麼做了),程式碼如下:
- <EditText
- android:layout_width="fill_parent"
- android:layout_height="36dip"
- android:background="@drawable/bg_edittext"
- android:padding="5dip"
-
android:layout_margin
- android:textColorHint="#AAAAAA"
- android:textSize="15dip"
- android:singleLine="true"
- android:hint="請輸入..."
- />
接下來建立三個xml檔案,分別為輸入框未獲得焦點時的背景,輸入框獲得焦點時的背景,selector背景選擇器(這裡能獲得輸入框什麼時候獲得和失去焦點),程式碼如下:
bg_edittext_normal.xml(未獲得焦點時)
- <?xmlversion="1.0"encoding="UTF-8"?>
-
<
- <solidandroid:color="#FFFFFF"/>
- <cornersandroid:radius="3dip"/>
- <stroke
- android:width="1dip"
- android:color="#BDC7D8"/>
- </shape>
bg_edittext_focused.xml(獲得焦點時)
-
<?xmlversion="1.0"encoding
- <shapexmlns:android="http://schemas.android.com/apk/res/android">
- <solidandroid:color="#FFFFFF"/>
- <cornersandroid:radius="3dip"/>
- <stroke
- android:width="1dip"
- android:color="#728ea3"/>
- </shape>
bg_edittext.xml(selector選擇器,這方面資料網上很多)
- <?xmlversion="1.0"encoding="UTF-8"?>
- <selectorxmlns:android="http://schemas.android.com/apk/res/android">
- <itemandroid:state_window_focused="false"android:drawable="@drawable/contact_edit_edittext_normal"/>
- <itemandroid:state_focused="true"android:drawable="@drawable/contact_edit_edittext_focused"/>
- </selector>
這樣就OK了,效果圖如下:
第二個輸入框邊框變為深色,是不是這樣更友好點。