Android 制作圆角阴影的卡片
在根据设计的图来写界面时,经常会遇到圆角有阴影的卡片,这里介绍一个google自己开发的控件CardView。
引用依赖
implementation 'com.android.support:cardview-v7:23.2.0'
在xml中
<android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" card_view:cardCornerRadius="10dp" //圆角大小 card_view:cardElevation="5dp"> //阴影大小 <!--子布局控件--> </android.support.v7.widget.CardView>
- Cardview继承自FrameLayout,所以子控件布局规则和FrameLayout的一样
- 我用于RecyclerView的item布局里,这种情况下使用时,它必须根布局不要不会出现阴影
CardView的常用属性
属性 | 作用 |
---|---|
card_view:cardElevation | 阴影的大小 |
card_view:cardMaxElevation | 阴影最大高度 |
card_view:cardBackgroundColor | 卡片的背景色 |
card_view:cardCornerRadius | 卡片的圆角大小 |
card_view:contentPadding | 卡片内容于边距的间隔 |
card_view:contentPaddingBottom | 卡片内容与底部的边距 |
card_view:contentPaddingTop | 卡片内容与顶部的边距 |
card_view:contentPaddingLeft | 卡片内容与左边的边距 |
card_view:contentPaddingRight | 卡片内容与右边的边距 |
card_view:contentPaddingStart | 卡片内容于边距的间隔起始 |
card_view:contentPaddingEnd | 卡片内容于边距的间隔终止 |
card_view:cardUseCompatPadding | 设置内边距,V21+的版本和之前的版本仍旧具有一样的计算方式 |
card_view:cardPreventCornerOverlap | 在V20和之前的版本中添加内边距,这个属性为了防止内容和边角的重叠 |