前言
Android使用XML的时候,实现圆角和边框都是使用背景实现的。
如果需要剪裁成圆角,则可以使用CardView实现。
CardView
设置圆角
1 | <androidx.cardview.widget.CardView |
取消阴影
要取消或移除 CardView
的阴影,你可以调整 CardView
的 cardElevation
属性,并将其设置为 0dp
。
此外,你还可以调整 cardUseCompatPadding
属性以确保没有额外的内边距用于显示阴影。
下面是如何设置 CardView
以取消阴影的示例:
1 | <androidx.cardview.widget.CardView |
在这个例子中,CardView
的 cardElevation
设置为 0dp
,以确保没有阴影。
此外,将 cardUseCompatPadding
设置为 false
可以消除由于阴影而产生的额外内边距,使 CardView
边缘更加紧凑。
内部剪裁
设置clipChildren
即可
1 | android:clipChildren="true" |
背景圆角和边框
rounded_border_background.xml
1 | <shape xmlns:android="http://schemas.android.com/apk/res/android" |
按钮背景
按钮可以使用selector设置点击和非点击使用不同的背景
1 |
|
涟漪效果
兼容不支持涟漪的XML
z_bg_ripple.xml
1 |
|
添加drawable-v21
文件夹 只有21
版本之后才支持涟漪效果
z_bg_ripple.xml
1 | <!-- ripple 是5.0才出现的新标签--> |
背景多层渐变,点击涟漪
实现方式
底层纯色背景。
中层设置渐变,注意XML的渐变效果最多只支持3个颜色。
顶层设置涟漪效果。
bg_gradient_btn.xml
1 |
|
添加一个涟漪效果的XML
bg_gradient_ripple_effect.xml
1 |
|
注意
涟漪效果的背景不能是全透明的,如果全透明就不会出现涟漪效果,所以这里设置为白色的半透明,涟漪覆盖色就设置的纯黑色,这样才会出现较好的效果。