Android-Layer list

学习自: KEEGAN小钢 原文链接 : (https://keeganlee.me/post/android/20150909)

使用layer-list 可以将多个 drawable 按照顺序层叠在一起显示。

1.我们可以通过 layer-list 和 selector 来实现下图效果

该图通过使用一个红色背景层和一个白色背景层实现,白色背景层在通过设置 android:bottom 向上偏移,显示图底部红色背景层。 偏移属性其实和 Margin 一个作用。

代码:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_checked="true">
        <layer-list>
            <item android:drawable="@android:color/holo_red_dark" />
            <item android:bottom="4dp" android:drawable="@android:color/white" />
        </layer-list>
    </item>


    <item android:state_checked="false">
        <layer-list>
            <item android:drawable="@android:color/holo_red_dark" />
            <item android:bottom="2dp" android:drawable="@android:color/white" />
        </layer-list>
    </item>

</selector>

2. 实现阴影效果

偏移指的是移动整个图层

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 灰色阴影 -->
    <item
        android:left="2dp"
        android:top="4dp">
        <shape>
            <solid android:color="@android:color/darker_gray" />
            <corners android:radius="10dp" />
        </shape>
    </item>
    <!-- 白色前景 -->
    <item
        android:bottom="4dp"
        android:right="2dp">
        <shape>
            <solid android:color="#FFFFFF" />
            <corners android:radius="10dp" />
        </shape>
    </item>

</layer-list>
Last modification:July 12th, 2020 at 08:21 pm