在不使用 android:elevation 属性的情况下设置View阴影

来源:互联网 发布:java 读取文本文件 编辑:程序博客网 时间:2024/06/16 04:17

1. 使用 layer-list + shape 创造阴影背景图

<?xml version="1.0" encoding="utf-8"?><!--在不设置海拔的情况下使用的阴影背景--><layer-list xmlns:android="http://schemas.android.com/apk/res/android">    <!--图层1 显示在下方-->    <item>        <shape android:shape="rectangle">            <gradient                android:angle="270"                android:endColor="#00000000"                android:startColor="#77434242"                android:type="linear" />            <size android:height="3dp" />        </shape>    </item>    <!--图层2 显示在上方-->    <!--bottom: 从bottom向上缩进12dp, 留给下面的层显示-->    <item android:bottom="@dimen/dp_12">        <shape android:shape="rectangle">            <solid android:color="#fff" />        </shape>    </item></layer-list>    <!--作为背景的缺点: 1. View高度变大后 阴影区域不会随之按比例放大, 还是12dp                       2. View高度变大后 渐变范围也增大, 最下方的12dp因此变淡                       3. 图层重叠,重复绘制-->

2. 使用带透明阴影的切图

作为背景的特点: 1. View高度变大后 阴影区域被拉伸,按比例放大(过大也会比较丑)
2. 渐变颜色变化较小
3. 不存在重复绘制