如果是5.0以上用elevation属性就行。如果是5.0以下的手机为控件设置一个有阴影感的背景图片即可,也可以使用shape
在自定义shape中增加一层或多层,并错开,即可显示阴影效果。为增加立体感,按钮按下的时候,只设置一层。我们可以通过top, bottom, right 和 left 四个参数来控制阴影的方向和大小
//自定义两种阴影效果
第一种
<?xml version=
"1.0"
encoding=
"utf-8"
?>
<selector xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<item android:state_pressed=
"true"
>
<layer-list>
<item android:left=
"4dp"
android:top=
"4dp"
>
<shape>
<solid android:color=
"#ff58bb52"
/>
<corners android:radius=
"30dip"
/>
</shape>
</item>
</layer-list>
</item>
<item>
<layer-list>
<!-- 第一层 -->
<item android:left=
"4dp"
android:top=
"4dp"
>
<shape>
<solid android:color=
"#66000000"
/>
<corners android:radius=
"30dip"
/>
<!-- 描边 -->
<stroke android:width=
"1dp"
android:color=
"#ffffffff"
/>
</shape>
</item>
<!-- 第二层 -->
<item android:bottom=
"4dp"
android:right=
"4dp"
>
<shape>
<solid android:color=
"#ff58bb52"
/>
<corners android:radius=
"30dip"
/>
<!-- 描边 -->
<stroke android:width=
"1dp"
android:color=
"#ffffffff"
/>
</shape>
</item>
</layer-list>
</item>
</selector>
|
第二种
<?xml version=
"1.0"
encoding=
"utf-8"
?>
<selector xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<!-- 点击之后 -->
<item android:state_pressed=
"true"
>
<layer-list>
<item android:left=
"4dp"
android:top=
"4dp"
>
<shape>
<solid android:color=
"#ff58bb52"
/>
<corners android:radius=
"3dp"
/>
</shape>
</item>
</layer-list>
</item>
<!-- 正常状态 -->
<item>
<layer-list>
<!-- 第一层 -->
<item android:left=
"2dp"
android:top=
"2dp"
>
<shape>
<solid android:color=
"#66000000"
/>
<corners android:radius=
"3dp"
/>
</shape>
</item>
<!-- 第二层 -->
<item android:bottom=
"4dp"
android:right=
"4dp"
>
<shape>
<solid android:color=
"#ff58bb52"
/>
<corners android:radius=
"3dp"
/>
</shape>
</item>
<!-- 第三层 -->
<item android:bottom=
"6dp"
android:right=
"6dp"
>
<shape>
<solid android:color=
"#ffcccccc"
/>
<corners android:radius=
"3dp"
/>
</shape>
</item>
</layer-list>
</item>
</selector>
|
设置后的效果图如下