EditText在App裏很常見,用來輸入文本,但是功能都是差不多的,可是在美化方面,總是會有各式各樣的需求,畢竟UI體驗還是很重要的。
在新版的Api23(Android6.0)或Api24裏的EditText是這個樣子的。
嗯?!僅此而已?長的有點任性啊!所以用戶又不滿足於現實了……情何以堪。
不滿足就要美化唄!
於是就是有了QQ搜索的樣式
於是趕緊仿製了一枚 <附上一個傻笑的emoji>
實現步驟:
1.在drawable文件夾下新建shape文件,這裏我命名爲shape_edit,內容如下:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#f2f0f2"/>
<corners android:radius="13px"/>
</shape>
<!--corners圓角及radius半徑,color顏色-->
我們的小灰灰圓角框就完成了,(shape不光可以運用在edittext上,而且可以用在其他某些控件)。
2.在xml佈局裏添加editText控件,代碼如下
<EditText
android:layout_width="wrap_content"
android:layout_height="35dp"
android:ems="10"
android:hint="說點什麼吧..."
android:gravity="center|center_horizontal"
android:id="@+id/editText2"
android:background="@drawable/shape_edit"
android:layout_below="@+id/editText"
android:layout_marginTop="101dp"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true" />
<!--hint隱藏文字及gravity居中顯示-->
<!-- background背景顯示-->
嗯,上述代碼單獨顯示的那一行就是關鍵,我們在background裏引用drawable資源,然後效果達成。
由於QQ截圖顯示的是搜索框,點擊它的話會跳轉到下一個界面,而裏面的icon和hint都會變化位置,而我添加的僅僅是edit輸入框,暫時不能變換位置,所以再顯示icon的話會很醜,不過不顯示icon也是蠻像的對吧。
另外還有其他shape樣式,這個都可以自定義的,完全由你自己設計,但是原理是差不多的。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#00ff00ff"/>
<corners android:radius="8px"/>
<stroke android:color="#32CD32" android:width="2px" />
</shape>
<!--圓角,透明內容,實線邊框,顏色-->
效果
這是透明輸入框的樣式
另外還有登錄的卡片式輸入框,都可以只使用shape實現。
<本文原創,轉載請註明出處,實現方法不是唯一的,本文僅代表個人看法,如有錯誤或者其他建議請在評論區指正,謝謝。>
2016.8.11 Surine