布局、按钮背景阴影:layer-list
原理:将多个drawable按照顺序层叠在一起显示
效果图
在drawable文件下新建layer-list的xml文件
阴影边框效果
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!--第一层阴影-->
<item>
<shape android:shape="rectangle">
<solid android:color="#0F000000" />
<corners android:radius="10dp" />
</shape>
</item>
<!--第二层前景-->
<item
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp">
<shape android:shape="rectangle">
<solid android:color="@android:color/white"/>
<corners android:radius="10dp" />
</shape>
</item>
</layer-list>
层叠效果
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 第一层阴影 层叠-->
<item>
<shape>
<solid android:color="@android:color/darker_gray" />
<!--圆角-->
<corners android:radius="10dp" />
</shape>
</item>
<!-- 第二层前景 层叠-->
<item>
<shape>
<solid android:color="@android:color/white" />
<corners android:radius="10dp" />
</shape>
</item>
</layer-list>
底部偏移效果
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 第一层阴影 -->
<item>
<shape>
<solid android:color="@android:color/darker_gray" />
<corners android:radius="10dp" />
</shape>
</item>
<!--第二层前景 底偏移1dp -->
<item android:bottom="1dp">
<shape>
<solid android:color="@android:color/white" />
<corners android:radius="10dp" />
</shape>
</item>
</layer-list>
右下偏移效果
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 第一层阴影:左偏移2dp,上偏移4dp -->
<item
android:left="2dp"
android:top="4dp">
<shape>
<solid android:color="@android:color/darker_gray" />
<!--圆角-->
<corners android:radius="10dp" />
</shape>
</item>
<!-- 第二层前景::底偏移4dp,右偏移2dp -->
<item
android:bottom="4dp"
android:right="2dp">
<shape>
<solid android:color="@android:color/white" />
<!--圆角-->
<corners android:radius="10dp" />
</shape>
</item>
</layer-list>
使用:直接设android:background属性为xml文件
android:background="@drawable/bg_shadow_white"