Drawble是Android應用中使用最靈活,也是最廣泛的資源,不僅可以直接使用".png",".jpg",".9.png"等圖片做爲資源,也可以直接使用多種XML文件作爲資源。只要一份XML文件可以被系統編譯成Drawble子類的對象,那麼這份XML文件就可以作爲Drawble資源
- Drawble下圖片資源
最簡單的資源,吧 “.png”,".jpg",".9.png"等格式放入/res/ drawble-xxx目錄下,Android應用在編譯應用時會自佛呢及時加載圖片,並在R清單類中生成該資源的索引
- Drawble下StateList Drawble資源
用於組織多個 Drawble對象。當使用 StateList Drawble 作爲目標組件的背景,背景圖片時, StateList Drawble 對象所心事的 Drawble對象會隨着目標組件的改變而自動切換
運用場景:高亮顯示文本框
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 指定獲得焦點時的顏色 -->
<item android:state_focused="true"
android:color="#f44"/>
<!-- 指定失去焦點時的顏色 -->
<item android:state_focused="false"
android:color="#ccf"/>
</selector>
- Drawble下Layer Drawble資源
和 StateList Drawble有點類似, Layer Drawble也可以包含一個 Drawble數組,因此字體將會按照這些 Drawble對象的數組順序來繪製它們,索引最大的 Drawble對象將會被繪製在最上面
運用場景:定製拖動條外觀
<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 定義軌道的背景 -->
<item android:id="@android:id/background"
android:drawable="@drawable/grow" />
<!-- 定義軌道上已完成部分的外觀-->
<item android:id="@android:id/progress"
android:drawable="@drawable/ok" />
</layer-list>
- Drawble 下Shape Drawble資源
用於定義一個基本的幾何圖形(例如:圓形,矩形,線性),定義 Shape Drawble的XML文件的跟元素的<shape…>
運用場景:橢圓形的文本框
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 設置填充顏色 -->
<solid android:color="#fff"/>
<!-- 設置四周的內邊距 -->
<padding android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="7dp" />
<!-- 設置邊框 -->
<stroke android:width="3dip" android:color="#ff0" />
</shape>
- Drawble下Clip Drawble資源
代表從全位圖上街區的一個圖片的片段,在XML中使用<clip…>開頭
運用場景:慢慢展開的風景
<?xml version="1.0" encoding="UTF-8"?>
<clip xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/shuangta"
android:clipOrientation="horizontal"
android:gravity="center">
</clip>
- Drawble 下Animation Drawble資源
代表一個動畫,既支持傳統的逐幀動畫,也支持通過平移、變換計算出來的補間動畫。
<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:duration="5000">
<!-- 定義縮放變換 -->
<scale android:fromXScale="1.0"
android:toXScale="1.4"
android:fromYScale="1.0"
android:toYScale="0.6"
android:pivotX="50%"
android:pivotY="50%"
android:fillAfter="true"
android:duration="2000"/>
<!-- 定義位移變換 -->
<translate android:fromXDelta="10"
android:toXDelta="130"
android:fromYDelta="30"
android:toYDelta="-80"
android:duration="2000"/>
</set>