Drawable資源——LayerDrawable 圖層清單
1,認識
它表示一種階層化的Drawable集合,通過将不同的Drawable放置在不同的層上面進而達到一種疊加後的效果。系統将會按這些Drawable對象的數組順序來繪制它們,索引最大的Drawable對象将會被繪制早最上面。
建立XML檔案:
定義LayerDrawable對象的XML檔案的根元素為<layer-list.../>,
該元素可以包含多個<item.../>元素,
檔案位置 ︰
res/drawable/filename.xml
檔案名用作資源 id。
文法
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@[package:]drawable/drawable_resource"
android:id="@[+][package:]id/resource_name"
android:top="dimension"
android:right="dimension"
android:bottom="dimension"
android:left="dimension" />
</layer-list>
2,各屬性注解
(1)<layer-list> 屬性
xmlns:android 字元串。所需。定義 XML 命名空間,
必須是"http://schemas.android.com/apk/res/android"
(2)<item> 屬性:
android:id:
為該Drawable對象指定一個辨別
android:drawable:
指定作為LayerDrawable元素之一的Drawable對象
android:buttom
它們用于指定一個底部的長度值,用于指定将該drawable
對象繪制到目标元件的指定位置。
android:top
它們用于指定一個頂部的長度值,用于指定将該drawable
對象繪制到目标元件的指定位置。
android:left
它們用于指定一個左邊的長度值,用于指定将該drawable
對象繪制到目标元件的指定位置。
android:right
它們用于指定一個右邊的長度值,用于指定将該drawable
對象繪制到目标元件的指定位置。
3,代碼示例
(1)activity_layer_drawable_useing.xml
<?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>
(2)layer_drawable_useing_2.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<bitmap
android:gravity="center"
android:src="@drawable/icon" />
</item>
<item
android:left="25dp"
android:top="25dp">
<bitmap
android:gravity="center"
android:src="@drawable/icon" />
</item>
<item
android:left="50dp"
android:top="50dp">
<bitmap
android:gravity="center"
android:src="@drawable/icon" />
</item>
</layer-list>
(3)layer_drawable_useing_3.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item >
<shape android:shape="rectangle">
<solid android:color="#0ac39e"/>
</shape>
</item>
<item android:bottom="6dp">
<shape android:shape="rectangle">
<solid android:color="#ffffff"/>
</shape>
</item>
<item android:bottom="3dp"
android:left="3dp"
android:right="3dp">
<shape
android:shape="rectangle">
<solid android:color="#ffffff"/>
</shape>
</item>
</layer-list>