想要绘制带阴影的按钮,需要使用layer-list标签,其实现原理是:最底层是阴影层,最上层才是按钮的实际背景
在layer-list标签中,每个item子标签都拥有top、left、right、bottom 4种属性,分别控制他们的上下左右的偏移量,只要好好控制这些属性,就能实现我们想要的阴影效果
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:left="2dp" android:top="2dp">
<shape android:shape="rectangle">
<corners android:radius="4dp"/>
<gradient android:startColor="#2b2b2b" android:endColor="#2b2b2b" android:angle="270"/>
</shape>
</item>
<item android:bottom="2dp" android:right="2dp">
<shape android:shape="rectangle">
<corners android:radius="4dp"/>
<solid android:color="@color/colorAccent"/>
</shape>
</item>
</layer-list>
上面代码中的偏移量可以根据自己的需要修改。
效果图: