Android Drawable - layer-list

Android Drawable - layer-list

图层列表

LayerDrawable 是管理其他可绘制对象阵列的可绘制对象。列表中的每个可绘制对象均按照列表顺序绘制,列表中的最后一个可绘制对象绘于顶部。
每个可绘制对象由单一 元素内的 元素表示。
文件位置:res/drawable/filename.xml 文件名用作资源 ID。
编译资源的数据类型: 指向 LayerDrawable 的资源指针。
资源引用:

  • 在 Java 中:R.drawable.filename
  • 在 XML 中:@[package:]drawable/filename

一些应用

1.显示border
参考:

  • Android: defining border drawables in xml

实现left、top、right、bottom边界,如左边界(其它形式类推):


<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:top="-2dp" android:bottom="-2dp" android:right="-2dp">

        <shape android:shape="rectangle">

            <stroke android:width="1dp" android:color="#000"/>

        shape>

    item>

全边界如下:


<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <stroke android:width="1dp" android:color="#000" />
        shape>
    item>
layer-list>

Android Drawable - layer-list_第1张图片

其它方式也可以实现,参考:

  • Android图层妙用之layer-list的基本使用介绍
  • android - layer-list 属性让特殊样式变得简单

如显示顶部线和底部线


<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
        <shape>
            <solid android:color="#02a0ef" />
        shape>
    item>

    <item android:top="1dp" android:bottom="1dp">
        <shape>
            <solid android:color="#ffffff"/>
        shape>
    item>

layer-list>

Android Drawable - layer-list_第2张图片

2.阴影


<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    
    <item android:left="3dp" android:top="6dp">
        <shape>
            <solid android:color="#b4b5b6" />
        shape>
    item>

    
    <item android:bottom="6dp" android:right="3dp">
        <shape>
            <solid android:color="#ffffff" />
        shape>
    item>

layer-list>

Android Drawable - layer-list_第3张图片

3.图片叠加效果

默认情况下,所有可绘制项都会缩放以适应包含视图的大小。因此,将图像放在图层列表中的不同位置可能会增大视图的大小,并且有些图像会相应地缩放。为避免缩放列表中的项目,请在 元素内使用 元素指定可绘制对象,并且对某些不缩放的项目(例如 “center”)定义重力。例如,以下 定义缩放以适应其容器视图的项目:

<item android:drawable="@drawable/image" />

为避免缩放,以下示例使用重力居中的 元素:


 

图片层叠的时候,有两种效果,一种是缩放后层叠,一种是不缩放的层叠

a.缩放后层叠


<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
        <bitmap android:src="@drawable/leaf" />
    item>


    <item android:top="50dp" android:left="50dp">
        <bitmap android:src="@drawable/leaf" />
    item>


    <item android:top="100dp" android:left="100dp">
        <bitmap android:src="@drawable/leaf" />
    item>

layer-list>

使用 layer-list 图

    <ImageView
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_marginTop="10dp"
        android:src="@drawable/bitmap_1"/>

Android Drawable - layer-list_第4张图片

b.不缩放层叠


<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
        <bitmap android:src="@drawable/leaf" android:gravity="center"/>
    item>


    <item android:top="50dp" android:left="50dp">
        <bitmap android:src="@drawable/leaf" android:gravity="center"/>
    item>


    <item android:top="100dp" android:left="100dp">
        <bitmap android:src="@drawable/leaf" android:gravity="center"/>
    item>

layer-list>

Android Drawable - layer-list_第5张图片

其它

参考:

  • Use a Layer-list to create a beautiful background part 1
  • Android Layer-List Example

你可能感兴趣的:(Android,View)