Android UI:XML文件配置按钮等背景方案
2019獨角獸企業重金招聘Python工程師標準>>>
? (1)在開發中,我們經常會遇到一些純色或帶邊框的簡單樣式的按鈕或div,很多時候,都是用九宮格的背景圖片來貼上去。但仔細想來,使用圖片也帶來了一些性能上的問題,包括過多的圖片文件會導致渲染頁面的時候需要加載渲染很多圖片,以及圖片也會帶來安裝包的增加,最后就是用圖片很麻煩的說,就如能夠用xml文件配出來,就不用再等UED了。
? ? (2)按鈕文字顏色在不同的狀態下也不一樣,最開始比較傻,直接通過代碼來動態改變,想想就惡心。其實這也是可以通過XML配置出來的。
? ??
? ? 好,下面就進入正題吧。
注:以下并不局限于按鈕,照樣可以用于各種view的background。
一)、配置按鈕背景
? ? Android能夠支持shape、selector等。shape顧名思義就是定義一個形狀,包括邊框、填充色、圓角等。如下實例:
| |
簡單說明下:
gradient???-- 對應顏色漸變。 startcolor、endcolor就不多說了。?android:angle 是指從哪個角度開始變。
solid ? ? ?-- ?填充色。
stroke ? -- ?邊框,其中width就是邊框線的寬度。
corners ?-- ?是否添加圓角,radius就是圓角的半徑。
padding ? -- 定義內容離邊界的距離。 與android:padding_left、android:padding_right這些是一個道理。
細心的讀者就會想到,這個shap好像只描述了一種狀態啊,怎么表示按鈕的其他狀態呢?那就得用到selector了。
selector顧名思義表示選擇器的意思,就是能夠根據不同的狀態選擇響應的參數。好了,直接亮代碼吧,多說無益:
| <?xml?version="1.0"?encoding="utf-8"?>
<selector?xmlns:android="http://schemas.android.com/apk/res/android"><item?android:state_pressed="true"><shape?android:shape="rectangle"><solid?android:color="#53cbff"?/><corners?android:radius="3dp"?/></shape>??????</item><item?android:state_selected="true"><shape?android:shape="rectangle"><solid?android:color="#53cbff"?/><corners?android:radius="3dp"?/></shape></item><item><shape?android:shape="rectangle"><solid?android:color="#44b2ff"?/><corners?android:radius="3dp"?/></shape></item>
</selector> |
效果就不再展示了,就是一個藍色的按鈕。
二)、配置按鈕的顏色方案
? ? 我們經常會遇到常態是按鈕背景是深的,按下去后是淺色背景,這時候就需要按鈕文字顏色也能夠隨之改變,否則效果就大打折扣了。
? ? 肯定,你也會想到其實只要和selector配合使用就好了,如下:
<?xml?version="1.0"?encoding="utf-8"?> <selector?xmlns:android="http://schemas.android.com/apk/res/android"><item?android:state_focused="true"?android:color="#ffffff"/><item?android:state_selected="true"?android:color="#ffffff"/><item?android:state_pressed="true"?android:color="#ffffff"/><item?android:color="#aaaaaa"/> </selector>使用的時候在android:textColor="@drawable/****"就好了。
好了,具體怎么靈活使用以及他們的含義就自己用實踐去摸索吧。
轉載于:https://my.oschina.net/cheneywangc/blog/195731
總結
以上是生活随笔為你收集整理的Android UI:XML文件配置按钮等背景方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Throwable、Error、Exce
- 下一篇: 南新制药是科创板吗