1. CardView类
CardView
是5.0版本出现的控件,可以添加圆角阴影的效果。需要在配置中添加依赖
implementation 'com.android.support:cardview-v7'
主要属性
属性 | 说明 |
---|---|
cardview_cardBackgroundColor | 设置背景色 |
cardview_cardCornerRadius | 设置圆角大小 |
cardview_cardElevation | 设置z轴阴影 |
cardview_cardMaxElevation | 设置z轴最大高度值 |
cardview_cardUseCompatPadding | 是否使用CompatPadding |
cardview_cardPreventCornerOverlap | 是否使用PreventCornerOverlap,防止内容和边角的重 |
cardview_contentPadding | 内容的padding |
CardView
继承FrameLayout
类,不同版本实现不一致,可参考Android CardView源码分析
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp">
<View
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/card_bg" />
</android.support.v7.widget.CardView>
效果如下
2. 设置圆角cardCornerRadius
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="10dp"
android:layout_margin="10dp">
<View
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/card_bg" />
</android.support.v7.widget.CardView>
V5.0效果如下
V4.4效果如下
3. 设置阴影
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="10dp"
app:cardElevation="10dp"
android:layout_margin="10dp">
<View
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/card_bg" />
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="10dp"
app:cardElevation="10dp"
app:cardMaxElevation="20dp"
android:layout_margin="10dp">
<View
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/card_bg" />
</android.support.v7.widget.CardView>
V5.0效果如下
V4.4效果如下
4. 设置padding
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="10dp"
app:cardElevation="10dp"
app:cardMaxElevation="20dp"
app:contentPadding="10dp"
android:layout_margin="10dp">
<View
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/card_bg" />
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="10dp"
app:cardElevation="10dp"
app:cardMaxElevation="20dp"
app:contentPadding="10dp"
app:cardUseCompatPadding="true"
android:layout_margin="10dp">
<View
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/card_bg" />
</android.support.v7.widget.CardView>
V5.0效果如下
V4.4效果如下