CardView基础使用

引用:


//这里的版本号换成跟项目的appcompat一致,尽量减少一些未知的问题
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:cardview-v7:23.0.1

//androidx
 implementation 'androidx.cardview:cardview:1.0.0'

布局:cardview继承FrameLayout,所以布局跟FrameLayout一样

public class CardView extends FrameLayout

属性:

(1):设置背景色,

app:cardBackgroundColor="@color/cardview_dark_background"

动态设置:cardview.setCardBackgroundColor(color)

cardview为了实现阴影效果,内部消耗掉了background的属性,cardview中设置background是没有效果的。

(2):设置圆角

app:cardCornerRadius="10dp"

动态设置:cardview.setRadius(10)

(3):设置内部的padding

app:contentPadding="10dp"

app:contentPaddingBottom="10dp"

app:contentPaddingLeft="10dp"

app:contentPaddingRight="10dp"

app:contentPaddingTop="10dp"

动态:cardview.setContentPadding(5,5,5,5);

(4):设置阴影的大小

app:cardElevation="10dp"

动态:cardview.setCardElevation(10);

(5)cardUseCompatPadding:默认为false,用于5.0以上,当设置为true的时候表示添加额外的padding绘制阴影

在5.0以下和5.0以上,cardview的阴影实现的机制和方法是不一样的,就是说在相同的内容和控件的条件下,5.0以上和5.0以下现实的效果是不一样的。有兴趣的可以研究一下文档

app:cardUseCompatPadding="true",在5.0以上的cardview中设置为true,这样在5.0以前和以后的小时效果基本都一样了,主要解决在5.0以上和5.0以下显示的时候的边距和缩进不同的问题

(6):cardPreventCornerOverlap:默认为true,用于5.0以下,防止内容与圆角重叠。

为了性能,5.0以下是没有对图片进行裁剪的,只是设置了一个圆角,这样会导致内容与cardview的圆角重叠。

(7)foreground:这是framelayout的属性,可以用来设置点击效果

android:foreground="?attr/selectableItemBackground"

你可能感兴趣的:(CardView基础使用)