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>