原文:http://blog.csdn.net/airk000/article/details/39520977
點擊閱讀原文
---------------------------------------------------------------
引言
在Google I/O 2014上,Google公布了Android?L Preview版本,此版本的UI有了非常大的改變,很炫很給力!同時,Google也給出了兩個可以向下兼容的控件放到了V7包中,分別是RecyclerView和CardView,這篇博文就說一下怎么使用CardView。
CardView的包在哪?
雖然說CardView整合到了V7中,但是在support-v7中并不能發現,通過查看sdk extra路徑下的文件可以發現,其名字叫cardview-v7。
這個路徑下就有cardview相關的東西了,包括已經打包好的aar包。
依賴
如果應用是以Gradle構建的,引用CardView就很簡單了:
如果Gradle提示找不到,就證明你的SDK需要更新了,把Google support包更新到最新吧。
如果沒有用Gradle構建,就需要找到jar包引用進來,而jar包隱藏在CardView的aar文件中:
以壓縮包方式打開aar,提取出其中的class.jar,這個jar文件就可以當作庫文件進行依賴了。
依賴添加完成后,進行編譯會發現出現minSdk錯誤,cardview-v7的minsdk為“L",其實CardView能夠向下兼容到2.0。
在Android gradle tools 0.11版本后,可以通過xml中的tools配置進行節點替換,而AndrodiStudio對gradle tools的支持更好一些,其ParentIDE Intellij都不行,所以目前我能找到的正常使用CardView的IDE及配置辦法只有在AndroidStudio中,不過這也是趨勢,早用早好的事情。
解決辦法:
在使用CardView的工程的AndroidManifest.xml中:
意思就是在做AndroidoManifest.xml編譯時,采用替換的策略,即全部使用build.gradle中定義的屬性作為最終屬性。添加完成后,再次編譯,問題解決。
使用
在使用CardVIew之前,要明白CardView是個什么東西。CardView如Linearlayout、Framelayout一樣都是ViewGroup,即其他控件的容器。CardView繼承于Framelayout,所以Framelayout的屬性他都有,同時CardView還有幾個特殊的屬性:
在API21(Android L)等級以上擁有屬性elevation,意為CardView的Z軸陰影,只有L平臺有效。只能通過xml中的elevation屬性指定;
其余(2.0以上)有屬性cardBackgroundColor,意為CardView的卡片顏色,只能通過xml的cardBackgroundColor進行指定;
其余(2.0以上)有屬性cardConerRadius,意為CardView卡片的四角圓角矩形程度,單位dimen(dp px sp),可以通過xml指定,也可以通過代碼中的setRadius指定。
示例:
效果圖:
-------------
更多的Java,Angular,Android,大數據,J2EE,Python,數據庫,Linux,Java架構師,:
http://www.cnblogs.com/zengmiaogen/p/7083694.html