CardView是在安卓5.0提出的卡片式控件

  1. compile 'com.android.support:cardview-v7:23.2.0'  

Cardview继承自FrameLayout,所以子控件布局规则和FrameLayout的一样,这个FrameLayout特殊点就是有rounded corner(圆角)和shadow(阴影)

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和之前的版本中添加内边距,这个属性为了防止内容和边角的重叠



布局引用:

没有效果的布局:

[html] view plain copy
 print?
  1. <LinearLayout  
  2.         android:layout_width="match_parent"  
  3.         android:layout_height="wrap_content"  
  4.         android:orientation="vertical"  
  5.         android:gravity="center"  
  6.         android:layout_gravity="center"  
  7.         >  
  8.   
  9.         <android.support.v7.widget.CardView  
  10.             android:id="@+id/cardview"  
  11.             android:layout_width="wrap_content"  
  12.             android:layout_height="wrap_content"  
  13.             android:layout_marginTop="50dp"  
  14.             android:gravity="center"  
  15.   
  16.             card_view:cardBackgroundColor="@color/colorAccent"  
  17.             card_view:contentPadding="8dp">  
  18.   
  19.             <TextView  
  20.                 android:id="@+id/card"  
  21.                 android:layout_width="wrap_content"  
  22.                 android:layout_height="wrap_content"  
  23.                 android:layout_gravity="center"  
  24.                 android:gravity="center"  
  25.                 android:text="CardView Style"  
  26.                 android:textSize="100px"/>  
  27.         </android.support.v7.widget.CardView>  
  28.     </LinearLayout>  

效果如下:

CardView是在安卓5.0提出的卡片式控件

有效果的布局:

[html] view plain copy
 print?
  1. <LinearLayout  
  2.         android:layout_width="match_parent"  
  3.         android:layout_height="wrap_content"  
  4.         android:orientation="vertical"  
  5.         android:gravity="center"  
  6.         android:layout_gravity="center"  
  7.         >  
  8.   
  9.         <android.support.v7.widget.CardView  
  10.             android:id="@+id/cardview"  
  11.             android:layout_width="wrap_content"  
  12.             android:layout_height="wrap_content"  
  13.             android:layout_marginTop="50dp"  
  14.             android:gravity="center"  
  15.   
  16.             card_view:cardBackgroundColor="@color/colorAccent"  
  17.             <span style="color:#FF0000;">card_view:cardCornerRadius="20dp"  
  18.             card_view:cardElevation="10dp"</span>  
  19.             card_view:contentPadding="8dp">  
  20.   
  21.             <TextView  
  22.                 android:id="@+id/card"  
  23.                 android:layout_width="wrap_content"  
  24.                 android:layout_height="wrap_content"  
  25.                 android:layout_gravity="center"  
  26.                 android:gravity="center"  
  27.                 android:text="CardView Style"  
  28.                 android:textSize="100px"/>  
  29.         </android.support.v7.widget.CardView>  
  30.     </LinearLayout>  

效果如下:

CardView是在安卓5.0提出的卡片式控件


通过上面的演示,我们发现CardView的卡片布局效果很不错,其可以用在ListView、RecyclerView等布局中。