上图是显示效果,下面是代码实现:
个人理解就是使用layer-list实现两层view的叠加,其中top,left,bottom,left控制阴影
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!--阴影-->
<item
android:left="6dp"
android:top="6dp"
>
<shape android:shape="rectangle">
<gradient
android:angle=""
android:endColor="#0eeeef00"
android:startColor="#0eeeef00"/> <corners
android:bottomLeftRadius="6dip"
android:bottomRightRadius="6dip"
android:topLeftRadius="6dip"
android:topRightRadius="6dip"/>
</shape>
</item>
<!--阴影--> <!--白色背景-->
<item
android:left="8dp"
android:top="8dp"
android:bottom="4dp"
android:right="4dp"> <shape android:shape="rectangle">
<gradient
android:angle=""
android:endColor="#FFFFFF"
android:startColor="#FFFFFF"/> <corners
android:bottomLeftRadius="6dip"
android:bottomRightRadius="6dip"
android:topLeftRadius="6dip"
android:topRightRadius="6dip"/>
</shape>
</item> </layer-list>
渐变就是利用
gradient的属性endcolor和startcolor,centercolor来控制颜色的不同
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item
android:left="6dp"
android:top="6dp"
>
<shape android:shape="rectangle">
<gradient
android:startColor="#FFFF0000"
android:endColor="#80FF00FF"
android:centerColor="#80ffff00"
android:angle=""/> <corners
android:bottomLeftRadius="6dip"
android:bottomRightRadius="6dip"
android:topLeftRadius="6dip"
android:topRightRadius="6dip"/>
</shape>
</item> </layer-list>