在开发中,经常需要给View设置阴影效果,采用layer-list和CardView都不太理想,这里推荐一种新的自定义方式。
首先看下效果图(这里和CardView进行对比):
第一步:在drawable下新建bg_text.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffffff" />
<corners android:radius="15dp" />
</shape>
第二步:给自己的布局添加背景(注意设置下elevation属性,组件浮起来的高度;第一个组件还设置了translationZ属性)
<TextView
android:text="translationZ"
android:textSize="18sp"
android:gravity="center"
android:elevation="3dp"
android:translationZ="1dp"
android:background="@drawable/bg_text"
android:layout_marginTop="60dp"
android:layout_width="200dp"
android:layout_height="60dp" />
<TextView
android:text="无translationZ"
android:textSize="18sp"
android:gravity="center"
android:elevation="3dp"
android:background="@drawable/bg_text"
android:layout_marginTop="30dp"
android:layout_width="200dp"
android:layout_height="60dp" />
<androidx.cardview.widget.CardView
android:elevation="3dp"
android:background="@drawable/bg_text"
android:layout_marginTop="30dp"
android:layout_width="200dp"
android:layout_height="60dp" >
<TextView
android:text="CardView"
android:textSize="18sp"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</androidx.cardview.widget.CardView>
如果觉得不错,欢迎点赞👍