LayerDrawable,系統將會按這些Drawable對象的數組順序來繪製它們,索引最大的Drawable對象將會被繪製在最上面
定義LayerDrawable對象的XML文件的根元素爲<layer-list.../>,該元素可以包含多個<item.../>元素
下面是一個例子,定義一個seekbar和一個imageview
seekbar的效果是拖動的部分和背景部分是兩個不同的圖片構成
下面定製seekbar的外觀,指定一個progressDrawable屬性,該屬性可改變seekbar的外觀
在Res->drawable-mdpi文件夾下定義如下Drawable資源,my_bar.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>
再定義另一個資源文件,用來定義imageview的外觀,layout_logo.xml
-
<?xml version="1.0" encoding="utf-8"?>
-
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
-
<item>
-
<bitmap android:src="@drawable/icon" android:gravity="center"/>
-
</item>
-
<item android:top="25dp" android:left="25dp">
-
<bitmap android:src="@drawable/icon" android:gravity="center"/>
-
</item>
-
<item android:top="50dp" android:left="50dp">
-
<bitmap android:src="@drawable/icon" android:gravity="center"/>
-
</item>
-
</layer-list>
下面是主界面main.xml
-
<?xml version="1.0" encoding="utf-8"?>
-
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-
android:layout_width="fill_parent"
-
android:layout_height="fill_parent"
-
android:orientation="vertical" >
-
-
<SeekBar
-
android:id="@+id/seekBar1"
-
android:layout_width="fill_parent"
-
android:layout_height="wrap_content"
-
android:max="100"
-
android:progressDrawable="@drawable/my_bar"
-
style="@android:style/Widget.ProgressBar.Horizontal"
-
/>
-
-
<ImageView
-
android:id="@+id/imageView1"
-
android:layout_width="wrap_content"
-
android:layout_height="wrap_content"
-
android:src="@drawable/layout_logo" />
-
-
</LinearLayout>
基本上,我們不費一行代碼的功夫,就完成了如下的效果