EditText在獲取焦點后默認(rèn)的邊框都是黃色的,這可能和我在開發(fā)的應(yīng)用的主題顏色不匹配凭豪,那怎么辦呢汁蝶?——用自定義的控件風(fēng)格,比如說我想讓EditText在獲取焦點時候邊框變成藍(lán)色的窃躲,而失去焦點后邊框變成灰色的计贰,要實現(xiàn)這個目的方法如下:
-
先在PS中畫兩張png圖片,一張為藍(lán)色邊框蒂窒、白色填充的圓角矩形躁倒,另一張為灰色邊框、白色填充的圓角矩形洒琢,兩個矩形形狀完全相同秧秉。這兩種圖片分別作為EditText在激活和未激活兩個狀態(tài)的背景圖片。一張命名為
et_pressed.png
衰抑,另一張為et_normal.png
象迎,如下:
-
使用draw9patch.bat工具(該工具的使用方法見這篇文章:Android制作和使用Nine-Patch圖片)將上面兩個圖片制作成Nine-Patch圖片,并分別命名為:
et_pressed.9.png
和et_normal.9.png
呛踊,如下:
將這兩個Nine-Patch圖片放到項目的
res/drawable
目錄下砾淌,并在res/drawable
目錄下新建一個名為selector_edittext_bg.xml
的xml文件啦撮,內(nèi)容如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/et_pressed" android:state_focused="true"/>
<item android:drawable="@drawable/et_normal"/>
</selector>
- 往
res/values/styles.xml
文件中添加如下內(nèi)容:
<style name="MyEtStyle" parent="@android:style/Widget.EditText">
<item name="android:background">@drawable/selector_edittext_bg</item>
</style>
- 在xml布局文件中只需這樣設(shè)置EditText的style屬性即可達(dá)到預(yù)期效果:
<EditText
android:id="@+id/input_et"
style="@style/MyEtStyle"
...
/>
-
效果如下截圖: