android LayerDrawable

来源:互联网 发布:c 编程思想 编辑:程序博客网 时间:2024/04/30 02:00

    定义LayerDrawable对象的XML的根元素是<layer-list>,最常用的用途就是为拖动条定制外观,使拖动图标前后的背景不一样,也可以让多张图片重叠在一起。

    为拖动条定制外观,需要定义一个如下的XML: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> 
   
     

        然后在布局文件中,为SeekBar指定相应的属性:

     <SeekBar
        style="@android:style/Widget.ProgressBar.Horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:max="100"
        android:progressDrawable="@drawable/my_bar" />

    我在运行的时候发现,应用的清单文件中,不能指定<user-sdk>,否则不会起作用,不知道为什么会这样,可能是我的设备是4.0以上的系统吧。

  让图片重叠也很简单:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <bitmap android:src="@drawable/money"
            android:gravity="center"/>
    </item>
   
    <item android:top="25dp" android:left="25dp">
        <bitmap android:src="@drawable/money"
            android:gravity="center"/>
    </item>
   
    <item android:top="50dp" android:left="50dp">
        <bitmap android:src="@drawable/money"
            android:gravity="center"/>
    </item>

</layer-list>

  指定了bitmap中的android:gravity为center,则每个图片大小都一样,若不指定,则图片会越来越小。

 

原创粉丝点击