原文: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就很简单了:

[html] view plaincopy print?
  1. dependencies {
  2. compile fileTree(dir: 'libs', include: ['*.jar'])
  3. compile 'com.android.support:cardview-v7:21.0.0-rc1'
  4. }

如果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中:

[html] view plaincopy print?
  1. <uses-sdk
  2. xmlns:tools="http://schemas.android.com/tools"
  3. tools:node="replace" />

意思就是在做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指定。

示例:

[html] view plaincopy print?
  1. <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:app="http://schemas.android.com/apk/res-auto"
  3. android:id="@+id/cardview"
  4. app:cardCornerRadius="8dp"
  5. app:cardBackgroundColor="@color/black"
  6. android:layout_margin="8dp"
  7. android:layout_height="80dp"
  8. android:layout_width="match_parent">
  9. <TextView
  10. android:text="TextView in CardView"
  11. android:layout_gravity="center"
  12. android:textSize="26sp"
  13. android:textColor="@color/l_white"
  14. android:layout_width="wrap_content"
  15. android:layout_height="wrap_content" />
  16. </android.support.v7.widget.CardView>

效果图:

-------------

更多的Java,Angular,Android,大数据,J2EE,Python,数据库,Linux,Java架构师,:

http://www.cnblogs.com/zengmiaogen/p/7083694.html

Android应用开发:CardView的使用及兼容相关推荐

  1. 【Android TV 开发】焦点处理 ( 父容器与子组件焦点获取关系处理 | 不同电视设备上的兼容问题 | 触摸获取焦点 | 按键获取焦点 )

    Android TV 开发系列文章目录 [Android TV 开发]安卓电视调试 ( 开启网络远程调试 ) [Android TV 开发]焦点处理 ( 父容器与子组件焦点获取关系处理 | 不同电视设 ...

  2. 【Android FFMPEG 开发】Android Studio 中 配置 FFMPEG 库最小兼容版本 ( undefined reference to 'atof' )

    文章目录 FFMPEG 最小兼容版本 注意事项 FFMPEG 最小兼容版本 注意事项 1 . 最小兼容版本 : 在 Ubuntu 中编译 FFMPEG 时 , 需要指定头文件 与 NDK 的依赖库 , ...

  3. 《Android Studio开发实战 从零基础到App上线》第一版的资源下载和内容勘误

    资源下载 下面是<Android Studio开发实战 从零基础到App上线>(第一版)一书用到的工具和代码资源: 1.本书使用的Android Studio版本为2.2.3,因为Andr ...

  4. 关于android相关开发资料的整理

    权限 适配Android6.0动态权限管理 FcPermissions:也许是目前最好的动态权限请求库 Android 开发技巧 - Android 6.0 以上权限大坑和权限检查基类封装 Andro ...

  5. [转]Android敏捷开发指南

    原文地址:http://www.apkbus.com/android-72730-1-1.html 本文紧密结合移动开发方法与技术,围绕Android平台的开发探讨提供更高质量移动产品的解决方案.作者 ...

  6. 【Android FFMPEG 开发】Android Studio 工程配置 FFMPEG ( 动态库打包 | 头文件与函数库拷贝 | CMake 脚本配置 )

    文章目录 I . FFMPEG 交叉编译后的函数库及头文件 II . FFMPEG 静态库打包动态库 ( 仅做参考 ) III . 创建 Android Studio 工程 IV . FFMPEG 头 ...

  7. 【Android NDK 开发】Android Studio 使用 CMake 导入动态库 ( 构建脚本路径配置 | 指定动态库查找路径 | 链接动态库 )

    文章目录 I . CMake 引入动态库与静态库区别 II . Android Studio 中 CMake 引入动态库流程 III . 指定动态库查找路径 IV . 链接函数库 V . 完整代码示例 ...

  8. 【Android NDK 开发】NDK 交叉编译 ( Ubuntu 中交叉编译动态库 | Android Studio 中配置使用第三方动态库 )

    文章目录 I . 动态库 与 静态库 II . 编译动态库 III. Android Studio 使用第三方动态库 IV . Android Studio 关键代码 V . 博客资源 I . 动态库 ...

  9. 【Android NDK 开发】JNI 方法解析 ( JNIEnv *env 参数 )

    文章目录 一. JNI 方法解析 二. JNIEnv *env 参数解析 三. C 语言 环境中 JNIEnv *env 参数解析 四. C ++ 环境中 JNIEnv *env 参数解析 总结 : ...

最新文章

  1. nginx中配置react-router参数跳转
  2. linux ping 端口_教你排除linux中网络故障问题
  3. Java多线程之线程虚假唤醒
  4. 将字符串转换为列显示
  5. matlab 2010 工具箱,Matlab2010下使用FULLBNT工具箱實現簡單的靜態貝葉斯網絡及推理...
  6. java改变变量编码方式_Java 8中的5个功能将改变您的编码方式
  7. CANOpen同步报文
  8. 使用si ob 导出,导入部分表
  9. java word2007_Java解析word2007、Excel2003和Excel2007
  10. phonegap 总结
  11. Python学习笔记—条件判断和循环
  12. C语言图书管理信息系统
  13. 2018年高教社杯A题 高温作业专用服装设计
  14. Python 安装库文件 is not a supported wheel on this platform的解决方案
  15. DSP2812入门1——开始学习与开发
  16. 深度残差网络_深度残差收缩网络:借助注意力机制实现特征的软阈值化
  17. python项目运行的软硬件环境_开发时的软硬件环境和运行时的软硬件环境分别是什么...
  18. linux设置自动运行任务管理器,自己实现Linux系统任务管理器(附源码)
  19. 2006(首届)Web2.0十大创新品牌
  20. 知乎盐选会员-share1223会员商城

热门文章

  1. xp搭建 php环境,windows xp 下 LAMP环境搭建
  2. 剪切文件_转录组测序技术和结果解读(十六)——可变剪切
  3. 野火stm32呼吸灯程序_说一说STM32启动过程
  4. springboot能用python吗_Python与springboot的对接
  5. mysql collect_set_hive列转行 (collect_set())
  6. python全局变量global线程安全_对python多线程与global变量详解
  7. 用python画大雄_python制作斗图生成器
  8. W3C近期要闻:与Mozilla MDN合作联合开发Web平台文档
  9. Idea项目中常见错误及笔记(Old)
  10. Sonar与jenkins集成