Android 资源简介(二)LayerDrawable

LayerDrawable 与 StateListDrawable 类似,也包含一个 Drawable 数组,因此系统将会按这些 Drawable 对象的数组顺序来绘制它们,索引最大的 Drawable 对象将会被绘制在最上面。

定义 LayerDrawable 对象的 XML 文件的根元素为 <layer-list>,该元素可以包含多个 <item> 元素,该元素可以指定如下属性:

  1. android:drawable:指定作为 LayerDrawable 元素之一的 Drawable 对象;
  2. android:id:为 Drawable 对象指定一个标识;
  3. android:bottom|top|left|right:它们用于指定一个长度值,用于指定将该 Drawable 对象绘制到目标组件的指定位置。

下面是一个简单的使用示例,自定义了两个 Drawable 资源,并简单的展示了它们:
首先是 my_seek_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/no" />
    <item android:id="@android:id/progress" android:drawable="@drawable/yes" />
</layer-list>

然后是 layout_images.xml:

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

然后是主布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorGray"
    android:orientation="vertical"
    android:gravity="center_horizontal"
    >

    <SeekBar
        android:id="@+id/seekBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="100"
        android:progressDrawable="@drawable/my_seek_bar"
        />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/layout_images"
        android:layout_marginTop="40dp"
        />

</LinearLayout>

程序的运行效果:

《Android 资源简介(二)LayerDrawable》 运行效果

    原文作者:赵者也
    原文地址: https://www.jianshu.com/p/f45037a611d2
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞