CardView属性app:cardUseCompatPadding和app:cardPreventCornerOverlap

本文详细解析了Android CardView中的app:cardUseCompatPadding和app:cardPreventCornerOverlap属性。app:cardUseCompatPadding主要影响5.0及以上系统中CardView的阴影绘制,设置为true时会在5.0以上系统模仿5.0以下的行为,添加padding绘制阴影。app:cardPreventCornerOverlap则在5.0以下系统中决定是否添加padding以防止内容与圆角重叠。通过实例和图片对比,清晰展示了这两个属性的效果差异。
摘要由CSDN通过智能技术生成

CardView继承自FrameLayout布局,常用属性如下:

参数 类型 含义
app:cardCornerRadius float 设置CardView的圆角半径
app:cardElevation float 设置阴影的深度
app:cardBackgroundColor int 设置卡片的背景色
android:foreground int 设置点击时候的水波纹效果,没有设置点击事件的话,就一定要设置android:clickable="true"属性,才能看到效果
app:cardUseCompatPadding boolean 在Android 5.0及以上平台中,设置是否要添加padding,5.0以下默认添加padding。默认值为false
app:cardPreventCornerOverlap boolean 是否给content添加padding,来阻止与圆角重叠,默认值为true

下文CardViewDemo代码

    <android.support.v7.widget.CardView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content
CardView是在Android 5.0 (API level 21)中引入的一个UI组件,它是一个可以显示阴影和圆角矩形背景的容器视图。在CardView中,可以使用android:outlineProvider属性来定义CardView的轮廓提供者,从而控制CardView的圆角和阴影效果。 默认情况下,CardView使用矩形轮廓提供者,因此它的边缘是直角的。可以通过设置android:radius属性来指定CardView的圆角半径,使CardView显示为圆角矩形。例如,以下代码将CardView的圆角半径设置为16dp: ``` <androidx.cardview.widget.CardView android:id="@+id/card_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="16dp" android:radius="16dp" android:elevation="8dp"> <!-- CardView的内容 --> </androidx.cardview.widget.CardView> ``` 如果需要自定义CardView的轮廓提供者,可以使用android:outlineProvider属性。例如,以下代码将CardView的轮廓提供者设置为一个自定义的圆角轮廓提供者: ``` <androidx.cardview.widget.CardView android:id="@+id/card_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="16dp" android:elevation="8dp" android:outlineProvider="@drawable/custom_outline_provider" android:clipToOutline="true"> <!-- CardView的内容 --> </androidx.cardview.widget.CardView> ``` 在这个例子中,我们使用了android:outlineProvider属性CardView的轮廓提供者设置为一个自定义的Drawable对象。需要注意的是,使用自定义的轮廓提供者时,还需要将android:clipToOutline属性设置为true,以确保CardView的内容不会绘制在轮廓之外。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值