CardView-卡片布局
2019-07-08 本文已影响35人
NoBugException
在有些项目中要求图片有阴影,并且边角为椭圆,这时就要考虑是否使用CardView(卡片布局)。
我们首先需要导入依赖包
implementation 'com.android.support:cardview-v7:28.0.0'
然后,了解一下CardView基本写法
<android.support.v7.widget.CardView
android:id="@+id/cv_demo"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_margin="50dp"
android:layout_centerInParent="true">
</android.support.v7.widget.CardView>
接下来,开始讲解一下CardView的基本属性:
- app:cardBackgroundColor="@color/colorPrimary":添加背景
- app:cardElevation="18dp":设置阴影大小
-
app:cardMaxElevation="18dp":设置最大阴影大小
-
app:cardPreventCornerOverlap="true":在v20和之前的版本中添加内边距,这个属性是为了防止卡片内容和边角的重叠,考虑到兼容性,还是将这个属性置为true比较好
-
app:cardUseCompatPadding="true":在在API21之前和之后的版本中,阴影部分的大小有差异性,为了兼容性考虑,将cardUseCompatPadding属性置为true比较好
-
app:cardCornerRadius="10dp":为四个角设置圆角
-
contentPadding、contentPaddingLeft、contentPaddingRight、contentPaddingBottom、contentPaddingBottom:设置内边距
app:contentPadding="10dp" app:contentPaddingLeft="10dp" app:contentPaddingRight="10dp" app:contentPaddingBottom="10dp" app:contentPaddingTop="10dp"
到这里,CardView的属性已经讲完了。
CardView其实是一个ViewGroup,它可以添加子布局,假如添加一张图片:
[设置了内边距]
[没有设置内边距]
xml代码如下:
<android.support.v7.widget.CardView
android:id="@+id/cv_demo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="50dp"
android:layout_centerInParent="true"
app:cardBackgroundColor="@color/colorPrimary"
app:cardElevation="18dp"
app:cardMaxElevation="18dp"
app:cardPreventCornerOverlap="true"
app:cardUseCompatPadding="true"
app:cardCornerRadius="10dp">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="centerCrop"
android:src="@mipmap/pic2"/>
</android.support.v7.widget.CardView>
[本章完...]