Android应用开发:CardView的使用及兼容

原文: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.   
  10.     <TextView  
  11.         android:text="TextView in CardView"  
  12.         android:layout_gravity="center"  
  13.         android:textSize="26sp"  
  14.         android:textColor="@color/l_white"  
  15.         android:layout_width="wrap_content"  
  16.         android:layout_height="wrap_content" />  
  17. </android.support.v7.widget.CardView>  

效果图:



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

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

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







本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/538889.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云海技术u盘怎么恢复成普通盘_BITLOCKER加密中断数据无法读取恢复一例

同行求助此问题&#xff0c;密码客户是知道的&#xff0c;输入密码后提示如图&#xff1a;如果点击RESUME则提示如下&#xff1a;无视提示关闭提示框后再次提示分区需要格式化&#xff1a;PC3000 DE中可以添加虚拟驱动器解析BITLOCKER加密的分区&#xff0c;但该例添加虚拟驱动…

git 未能顺利结束(退出码1)

按照这个博客上安装完小乌龟git后&#xff1a;https://blog.csdn.net/jdsjlzx/article/details/51098588win10下安装完乌龟git后无法上传文件进行文件上传时出现错误如下&#xff1a;git 未能顺利结束&#xff08;退出码1&#xff09;&#xff08;922ms2018/4/17 22&#xff1a…

php sql跳过前四条数据,mysql实现每组取前N条记录的sql,以及后续的组数据量限制...

select a.msg_id, a.com_id, a.data, a.ctime from sns_user_03.user_request_86 a where 5 (select count(*) from sns_user_03.user_request_86 where uid8880386 and com_id a.app_id and msg_id a.msg_id ) order by a.ctime; 上面的sql实现分组查询&#xff0c;select a.…

交际过程的两个基本环节_男女相处,若不介意这些“小动作”,基本可以确定“关系暧昧”...

当你对我说再见的时候&#xff0c;我看到你的笑容里有祝福&#xff0c;眼神里却有遗憾……——南明夫人爱情中最美好幸福的事&#xff0c;莫过于你深爱的人&#xff0c;恰好也钟情于你。这种两情相悦的爱情总是如此难得&#xff0c;让人心生羡慕。这份甜蜜与美好&#xff0c;让…

Android之NetworkOnMainThreadException异常

原文链接&#xff1a;http://blog.csdn.net/mad1989/article/details/25964495 点击阅读原文 ------------------------------------------------------------------ 看名字就应该知道&#xff0c;是网络请求在MainThread中产生的异常 先来看一下官网的解释&#xff1a; Cl…

中国信通院金融科技负责人韩涵:大数据是生产资料的变革,区块链是生产关系的变革...

在近日召开的“2018中国金融科技产业峰会”上&#xff0c;中国信息通信研究院主任工程师、金融科技负责人韩涵正式发布了《中国金融科技前沿技术发展趋势及应用场景研究报告》&#xff0c;详细讲解了A&#xff08;人工智能&#xff09;B&#xff08;区块链&#xff09;C&#x…

php mysql 拼音首字母,Mysql应用MySQL查询汉字的拼音首字母实例教程

《Mysql应用MySQL查询汉字的拼音首字母实例教程》要点&#xff1a;本文介绍了Mysql应用MySQL查询汉字的拼音首字母实例教程&#xff0c;希望对您有用。如果有疑问&#xff0c;可以联系我们。导读&#xff1a;最好的方法还是用 PHP 来取拼音首字母,在 MySQL 里新建一个字段来存放…

java简单纸牌游戏_活动回顾 | 畅玩法语纸牌游戏

11月17日下午&#xff0c;20级小伙伴们迎来了第二次法语角活动&#xff01;这次外教Anne-Flore Vrac 老师为同学们安排了丰富有趣的法语纸牌游戏&#xff0c;快来一起回顾活动的精彩瞬间吧&#xff01;集体游戏一&#xff1a;从1到30老师首先带领同学们进行了“从1到30”的小游…

人脸识别门禁_小区人脸识别门禁或取代传统门禁刷卡方式

可以说&#xff0c;社区是一个人口聚集的小型社会。首先社区的人流量很大&#xff0c;进出是十分频繁。其次&#xff0c;社区的大门以及各处进出口是业主与访客、外来人员等进进出出最关键的通道。因此&#xff0c;每个社区都会有一套成型的门禁系统&#xff0c;常见的是使用门…

Java Thread.join()详解

原文地址&#xff1a;http://www.open-open.com/lib/view/open1371741636171.html 点击阅读原文 ------------------------------------------------------------- 一、使用方式。 join是Thread类的一个方法&#xff0c;启动线程后直接调用&#xff0c;例如&#xff1a; Thr…

元类编程--property动态属性

from datetime import date, datetime class User:def __init__(self, name, birthday):self.name nameself.birthday birthdayself._age 0# def get_age(self):# return datetime.now().year - self.birthday.yearproperty #动态属性def age(self): #属性描述符&#x…

php什么情况下使用静态属性,oop-做php项目什么时候该使用静态属性呢

一般我们做php项目 类里面 定义的方法 或者 属性 都是普通的 什么时候该用 static 方法和属性 有什么例子的我很少用 静态属性 就有一次用过 我在做会员中心 要获取 会员菜单的时候 我用的private static $menu array();大家可以讨论下吗回复内容&#xff1a;一般我们做php项目…

vscode运行python文件_vscode怎么运行python文件

1、首先需要确保安装了VScode的Python插件&#xff0c;打开Python脚本&#xff0c;可以直接拖入&#xff0c;点击文件&#xff0c;点击首选项里的用户设置&#xff0c;这时候会用户设置配置文件。2、然后在左边文件CtrlF搜索Python关键字&#xff0c;找到pythonPath所在行3、然…

python输出日期语句_如何从Python的原始语句中提取时间-日期-时间段信息

经过几天的研究&#xff0c;我想出了以下方法来解决提取问题。在识别命题&#xff0c;然后识别月份并进行提取。在识别“-”&#xff0c;然后识别月份并进行提取。在部分代码如下所示。(节选&#xff0c;需要上下文中的依赖项)new_w new_s.split()for j in range(len(new_w)):…

datepicker动态初始化

datepicker 初始化动态表单的input&#xff0c;需要调用jquery的on方法来给未来元素初始化。 //对动态添加的时间文本框进行动态初始化$(table).on("focus", ".datepicker", function () {//添加data属性未来只初始化一次if ($(this).data("datepicke…

oracle中存储过程 =,oracle中的存储过程使用

一 存储过程的基本应用1 创建存储过程(SQL窗口)create or replace procedure update_staffasbeginupdate staff set name xy;commit;end update_staff;存储过程适合做更新操作&#xff0c;特别是大量数据的更新2 查看存储过程在数据字典中的信息(SQL窗口)select object_name,o…

python项目如何上线_django项目部署上线(示例代码)

前言完善的django项目上线&#xff0c;有很多种上线的方法&#xff0c;比如apache, uwsgi, nginx等。这里只介绍2种&#xff0c;一种是django自带的&#xff0c;另外一种则是nginx uwsgi完成介绍。这里的系统环境采用的是ubantu系统&#xff0c; python环境采用的是python3, d…

如何检查python的库是否安装成功_如何测试redis是否安装成功

下载Redis 下载好后 复制所在位置 cd 跳到 D:\Java\64bit 图中的目录位置 这样便启动成功了。 设置redis密码的话要 到redis.conf中找到 requirepass关键字 设置密码为123456 redis-cli.exe 进入客户端 然后 auth 123456 注释&#xff1a; auth 密码 set 对象名 [a] 值[123] ge…

第三方类库的学习心态

我们需要牢牢的记住&#xff1a;所有的第三方库能实现的功能&#xff0c;我们使用原生的API只要花时间和精力也能实现&#xff0c;但是可能会出现很多的bug而且会花费较多的时间和精力&#xff0c;而且性能也不一定很好&#xff0c;第三方的库会帮我们封装底层的一些代码&#…