CardView是在Android 5.0推出的新控件,为了兼容之前的版本,将其放在了v7包里面,在现在扁平化设计潮流的驱使下,越来越多的软件使用到了CardView这一控件,那么这篇文章就来看看CardView怎么使用吧
CardView的特有属性
cardBackgroundColor
背景色cardCornerRadius
边缘弧度数cardElevation
高度cardMaxElevation
最大高度cardUseCompatPadding
设置内边距cardPreventCornerOverlap
防止卡片内容和边角的重叠contentPadding
内边距contentPaddingLeft
内左边距contentPaddingRight
内右边距contentPaddingTop
内上边距contentPaddingBottom
内下边距
CardView使用
由于CardView的使用比较简单,这里不再过多描述
使用前导入依赖1
implementation 'com.android.support:cardview-v7:25.4.0'
文字
1 | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
效果如下
图片
1 | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
效果如下
适配注意点
- 边框圆角效果
5.x 图片和布局都可以很好的呈现圆角效果,图片也变圆角了
4.x 图不能变成圆角,如果要做成5.x一样的效果:通过加载图片的时候自己去处理成圆角 阴影效果
1
2app:cardCornerRadius="10dp"<!--圆角(半径值越大圆角就越明显)-->
app:cardElevation="10dp" <!--阴影效果(值越大阴影效果越明显)-->5.x上有Ripple水波纹效果(低版本自定义)
1
2android:foreground="?attr/selectableItemBackground"
android:clickable="true"5.x实现按下的互动效果下沉,松开弹起 - Z轴位移效果(低版本自定义)
1
2android:stateListAnimator="@drawable/translation"
android:clickable="true"可以设置内容的内边距
1
app:contentPadding="5dp"
细节:
5.x上面,边距阴影比较小,需要手动添加边距16dp
4.x上面,边距太大, 手动修改边距0dp(原因:兼容包里面设置阴影效果自动设置了margin来处理16dp)
translation.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="translationZ"
android:valueTo="10dp"
android:valueType="floatType" />
</item>
<item>
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="translationZ"
android:valueTo="0dp"
android:valueType="floatType" />
</item>
</selector>