Android應(yīng)用開(kāi)發(fā)中CardView的初步使用指南
引言
在Google I/O 2014上,Google公布了Android L Preview版本,此版本的UI有了非常大的改變,很炫很給力!同時(shí),Google也給出了兩個(gè)可以向下兼容的控件放到了V7包中,分別是RecyclerView和CardView,這篇博文就說(shuō)一下怎么使用CardView。
CardView的包在哪?
雖然說(shuō)CardView整合到了V7中,但是在support-v7中并不能發(fā)現(xiàn),通過(guò)查看sdk extra路徑下的文件可以發(fā)現(xiàn),其名字叫cardview-v7。
這個(gè)路徑下就有cardview相關(guān)的東西了,包括已經(jīng)打包好的aar包。
依賴
如果應(yīng)用是以Gradle構(gòu)建的,引用CardView就很簡(jiǎn)單了:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:cardview-v7:21.0.0-rc1'
}
如果Gradle提示找不到,就證明你的SDK需要更新了,把Google support包更新到最新吧。
如果沒(méi)有用Gradle構(gòu)建,就需要找到j(luò)ar包引用進(jìn)來(lái),而jar包隱藏在CardView的aar文件中:
以壓縮包方式打開(kāi)aar,提取出其中的class.jar,這個(gè)jar文件就可以當(dāng)作庫(kù)文件進(jìn)行依賴了。
依賴添加完成后,進(jìn)行編譯會(huì)發(fā)現(xiàn)出現(xiàn)minSdk錯(cuò)誤,cardview-v7的minsdk為“L",其實(shí)CardView能夠向下兼容到2.0。
在Android gradle tools 0.11版本后,可以通過(guò)xml中的tools配置進(jìn)行節(jié)點(diǎn)替換,而AndrodiStudio對(duì)gradle tools的支持更好一些,其ParentIDE Intellij都不行,所以目前我能找到的正常使用CardView的IDE及配置辦法只有在AndroidStudio中,不過(guò)這也是趨勢(shì),早用早好的事情。
解決辦法:
在使用CardView的工程的AndroidManifest.xml中:
<uses-sdk xmlns:tools="http://schemas.android.com/tools" tools:node="replace" />
意思就是在做AndroidoManifest.xml編譯時(shí),采用替換的策略,即全部使用build.gradle中定義的屬性作為最終屬性。添加完成后,再次編譯,問(wèn)題解決。
使用
在使用CardVIew之前,要明白CardView是個(gè)什么東西。CardView如Linearlayout、Framelayout一樣都是ViewGroup,即其他控件的容器。CardView繼承于Framelayout,所以Framelayout的屬性他都有,同時(shí)CardView還有幾個(gè)特殊的屬性:
在API21(Android L)等級(jí)以上擁有屬性elevation,意為CardView的Z軸陰影,只有L平臺(tái)有效。只能通過(guò)xml中的elevation屬性指定;
其余(2.0以上)有屬性cardBackgroundColor,意為CardView的卡片顏色,只能通過(guò)xml的cardBackgroundColor進(jìn)行指定;
其余(2.0以上)有屬性cardConerRadius,意為CardView卡片的四角圓角矩形程度,單位dimen(dp px sp),可以通過(guò)xml指定,也可以通過(guò)代碼中的setRadius指定。
示例:
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/cardview" app:cardCornerRadius="8dp" app:cardBackgroundColor="@color/black" android:layout_margin="8dp" android:layout_height="80dp" android:layout_width="match_parent"> <TextView android:text="TextView in CardView" android:layout_gravity="center" android:textSize="26sp" android:textColor="@color/l_white" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </android.support.v7.widget.CardView>
效果圖:

CardView繼承至FrameLayout類,可以在一個(gè)卡片布局中一致性的顯示內(nèi)容,卡片可以包含圓角和陰影。CardView是一個(gè)Layout,可以布局其他View。
CardView常用屬性:
- card_view:cardElevation 陰影的大小
- card_view:cardMaxElevation 陰影最大高度
- card_view:cardBackgroundColor 卡片的背景色
- card_view:cardCornerRadius 卡片的圓角大小
- card_view:contentPadding 卡片內(nèi)容于邊距的間隔
- card_view:contentPaddingBottom 卡片內(nèi)容與底部的邊距
- card_view:contentPaddingTop 卡片內(nèi)容與頂部的邊距
- card_view:contentPaddingLeft 卡片內(nèi)容與左邊的邊距
- card_view:contentPaddingRight 卡片內(nèi)容與右邊的邊距
- card_view:contentPaddingStart 卡片內(nèi)容于邊距的間隔起始
- card_view:contentPaddingEnd 卡片內(nèi)容于邊距的間隔終止
- card_view:cardUseCompatPadding 設(shè)置內(nèi)邊距,V21+的版本和之前的版本仍舊具有一樣的計(jì)算方式
- card_view:cardPreventConrerOverlap 在V20和之前的版本中添加內(nèi)邊距,這個(gè)屬性為了防止內(nèi)容和邊角的重疊
再來(lái)看一個(gè)例子:
<android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto" android:layout_width="200dp" android:layout_height="wrap_content" card_view:cardBackgroundColor="#303069" card_view:cardCornerRadius="10dp" card_view:cardPreventCornerOverlap="true" card_view:cardUseCompatPadding="true" card_view:contentPadding="10dp"> ... </android.support.v7.widget.CardView>
注:在gradle的dependencies中添加`compile 'com.android.support:cardview-v7:21.+'`
然后視圖中的卡片基本上會(huì)這樣顯示:

CardView繼承至FrameLayout類,可以在一個(gè)卡片布局中一致性的顯示內(nèi)容,卡片可以包含圓角和陰影。CardView是一個(gè)Layout,可以布局其他View。
- Android控件CardView實(shí)現(xiàn)卡片效果
- Android使用CardView實(shí)現(xiàn)圓角對(duì)話框
- Android控件CardView實(shí)現(xiàn)卡片布局
- Android CardView+ViewPager實(shí)現(xiàn)ViewPager翻頁(yè)動(dòng)畫(huà)的方法
- Android使用CardView作為RecyclerView的Item并實(shí)現(xiàn)拖拽和左滑刪除
- Android CardView詳解及使用方法和實(shí)例
- Android中使用CircleImageView和Cardview制作圓形頭像的方法
- Android MaterialCardView的使用介紹與示例
相關(guān)文章
Android開(kāi)發(fā)微信小程序路由跳轉(zhuǎn)方式
這篇文章主要為大家介紹了Android開(kāi)發(fā)微信小程序路由跳轉(zhuǎn)方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04
Android新特性頁(yè)面之ViewPager拖拽到最后一頁(yè)再拖拽打開(kāi)其他Activity(三種方法)
這篇文章主要介紹了Android新特性頁(yè)面之ViewPager拖拽到最后一頁(yè)再拖拽打開(kāi)其他Activity的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-08-08
Android OkHttp實(shí)現(xiàn)全局過(guò)期token自動(dòng)刷新示例
本篇文章主要介紹了Android OkHttp實(shí)現(xiàn)全局過(guò)期token自動(dòng)刷新示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
Android中使用GridLayout網(wǎng)格布局來(lái)制作簡(jiǎn)單的計(jì)算器App
這篇文章主要介紹了Android中使用GridLayout網(wǎng)格布局來(lái)制作簡(jiǎn)單的計(jì)算器App的實(shí)例,GridLayout比表格布局TabelLayout更容易用來(lái)制作計(jì)算器這樣的多按鈕排列的界面,需要的朋友可以參考下2016-04-04
Android開(kāi)發(fā)實(shí)現(xiàn)布局幀布局霓虹燈效果示例
這篇文章主要介紹了Android開(kāi)發(fā)實(shí)現(xiàn)布局幀布局霓虹燈效果,涉及Android界面布局、資源文件操作及屬性設(shè)置等相關(guān)技巧,需要的朋友可以參考下2019-04-04
Android adb命令中pm工具的作用及用法說(shuō)明
這篇文章主要介紹了Android adb命令中pm工具的作用及用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08
實(shí)例分析Android中HandlerThread線程用法
本篇文章主要給大家介紹了Android HandlerThread使用介紹以及源碼解析,有需要的朋友參考學(xué)習(xí)下吧。2017-12-12
android調(diào)用原生圖片裁剪后圖片尺寸縮放的解決方法
這篇文章主要為大家詳細(xì)介紹了android調(diào)用原生圖片裁剪后圖片尺寸縮放的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03

