
CardView也是5.0的新控件,這控件其實就是一個卡片啦,當然我們自己也完全可以定義這樣一個卡片,從現在的微博等社App中可以看到各式各樣的自定義卡片,所以這個控件意義不是很大。support中的view所以使用在布局里面的時候一下子看不到效果的,比較不好。CardView繼承的是FrameLayout,所以擺放內部控件的時候需要注意一下啦。
建議:個人不是很建議用這個控件,因為我們完全可以自定義這樣一個控件,這樣既能在布局時直接看到效果又比較方便。
參數說明:
<resources> <declare-styleable name="CardView"> <!-- Background color for CardView. --> <!-- 背景色 --> <attr name="cardBackgroundColor" format="color" /> <!-- Corner radius for CardView. --> <!-- 邊緣弧度數 --> <attr name="cardCornerRadius" format="dimension" /> <!-- Elevation for CardView. --> <!-- 高度 --> <attr name="cardElevation" format="dimension" /> <!-- Maximum Elevation for CardView. --> <!-- 最大高度 --> <attr name="cardMaxElevation" format="dimension" /> <!-- Add padding in API v21+ as well to have the same measurements with previous versions. --> <!-- 設置內邊距,v21+的版本和之前的版本仍舊具有一樣的計算方式 --> <attr name="cardUseCompatPadding" format="boolean" /> <!-- Add padding to CardView on v20 and before to prevent intersections between the Card content and rounded corners. --> <!-- 在v20和之前的版本中添加內邊距,這個屬性是為了防止卡片內容和邊角的重疊 --> <attr name="cardPreventCornerOverlap" format="boolean" /> <!-- 下面是卡片邊界距離內部的距離--> <!-- Inner padding between the edges of the Card and children of the CardView. --> <attr name="contentPadding" format="dimension" /> <!-- Inner padding between the left edge of the Card and children of the CardView. --> <attr name="contentPaddingLeft" format="dimension" /> <!-- Inner padding between the right edge of the Card and children of the CardView. --> <attr name="contentPaddingRight" format="dimension" /> <!-- Inner padding between the top edge of the Card and children of the CardView. --> <attr name="contentPaddingTop" format="dimension" /> <!-- Inner padding between the bottom edge of the Card and children of the CardView. --> <attr name="contentPaddingBottom" format="dimension" /> </declare-styleable> </resources>
看完了參數,那么我們來看看布局文件中的用法。
<!-- A CardView that contains a TextView --> <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/card_view" android:layout_width="200dp" android:layout_height="200dp" android:layout_gravity="center" app:cardCornerRadius="4dp" app:cardBackgroundColor="#ff0000" app:cardElevation="5dp" app:cardMaxElevation="10dp" app:cardUseCompatPadding="true" app:cardPreventCornerOverlap="true"> <TextView android:id="@+id/info_text" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" android:textSize="25sp" android:textColor="#ffffff" android:text="Hello CardView"/> </android.support.v7.widget.CardView>
這樣我們就定義好了一個CardView了。本來這篇文章不需要給源碼的,但因為有人的support-v7包中這個jar有點問題(比如我),所以還是放一個代碼吧。
源碼下載:http://download.csdn.net/detail/shark0017/8108835
參考自:
http://blog.csdn.net/a396901990/article/details/40187769
