CardView是android5. 0出现的,效果类似于带有阴影边框的圆角卡片。可以把它看成FrameLayout,这样使用起来就清晰了很多吧。它既可以独立使用也可以是ListView、GradView、RecyclerView等的item布局。

一、使用它要现在build.gradle中添加依赖

 compile 'com.android.support:cardview-v7:23.4.0'

二、接下来就放心大胆的使用吧

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="wrap_content"android:layout_height="wrap_content"xmlns:card_view="http://schemas.android.com/apk/res-auto"card_view:cardElevation="3dp"card_view:cardCornerRadius = "9dp"android:clickable="true"android:foreground="?android:attr/selectableItemBackground"tools:context="com.example.ws.scrollcviewrerurntop.CardViewActivity"card_view:cardBackgroundColor="#ff0000"card_view:contentPadding ="10dp"><!--你要显示的布局,一个控件或者一个其他的布局--><LinearLayout/>……</LinearLayout></android.support.v7.widget.CardView>

三、接下来简单说一下CardView的属性

> 1、android:cardCornerRadius 在xml文件中设置card圆角的大小 > 2、CardView.setRadius在代码中设置card圆角的大小 > 3、android:cardBackgroundColor 在xml文件中设置card背景颜色> 4、android:elevation 在xml文件中设置阴影的大小 > 5、card_view:cardElevation在xml文件中设置阴影的大小 > 6、card_view:cardMaxElevation 在xml文件中设置阴影最大高度> 7、card_view:cardCornerRadius 在xml文件中设置卡片的圆角大小> 8、card_view:contentPadding 在xml文件中设置卡片内容于边距的间隔> 9、card_view:contentPaddingBottom 在xml文件中设置卡片内容于下边距的间隔> 10、card_view:contentPaddingTop 在xml文件中设置卡片内容于上边距的间隔> 11、card_view:contentPaddingLeft 在xml文件中设置卡片内容于左边距的间隔> 12、card_view:contentPaddingRight 在xml文件中设置卡片内容于右边距的间隔> 13、card_view:contentPaddingStart 在xml文件中设置卡片内容于边距的间隔起始> 14、card_view:contentPaddingEnd 在xml文件中设置卡片内容于边距的间隔终止> 15、card_view:cardUseCompatPadding 在xml文件中设置内边距,V21+的版本和之前的版本仍旧具有一样的计算方式> 16、card_view:cardPreventConrerOverlap 在xml文件中设置内边距,在V20和之前的版本中添加内边距,这个属性为了防止内容和边角的重叠

四、波纹点击效果

默认情况,CardView是不可点击的,并且没有任何的触摸反馈效果。触摸反馈动画在用户点击CardView时可以给用户以视觉上的反馈。
实现这种行为,需要提供一下属性:android:clickable和android:foreground。

android:clickable="true"
android:foreground="?android:attr/selectableItemBackground"

五、对更早的版本的支持

在AndroidL之前的设备上,CardView为了支持圆角的效果加上了padding,圆角剪裁操作可以算是很昂贵的操作。相似的,对阴影效果来说,在AndroidL之前,也会提供padding去绘制阴影面积,这些内容的padding是和elevation属性相关的,按照文档:

padding值为:

左右两边的值为:maxCardElevation + (1 - cos45) * cornerRadius
上下两边的值为:maxCardElevation * 1.5 + (1 - cos45) * cornerRadius

因此,如果你需要给自己的内容加上padding的话,需要使用新的属性:card_view:contentPadding

相似的,如果改变CardView的背景,也需要使用新的属性:card_view:cardBackgroundColor

CardView的详细使用相关推荐

  1. Android CardView 开发过程中要注意的细节

    原文出处:http://www.codeceo.com/article/android-cardview.html 2014 年,随着 Google 推出了全新的设计语言 Material Desig ...

  2. CardView的那点事儿

    概述 官方说明和文档 CardView官方API 创建列表与卡片 类继承关系: java.lang.Object ↳ android.view.View ↳ android.view.ViewGrou ...

  3. android卡片风格,[Android] Android 卡片式控件CardView的优雅使用

    [Android] Android 卡片式控件CardView的优雅使用 CardView是在安卓5.0提出的卡片式控件 其具体用法如下: 1.在app/build.gradle 文件中添加 comp ...

  4. ANDROID L——RecyclerView,CardView导入和使用(Demo)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 简介: 这篇文章是ANDROID L--Material Design详解(UI控件)的一 ...

  5. (超详细)超炫酷的ViewPager框架——MaterialViewPager使用方法详解

    最近在找viewpager开源框架的时候,发现了一款十分炫酷的框架--MaterialViewPager 少说废话,先贴实际效果图:           原项目地址(含Demo)https://git ...

  6. jar包升级部署到服务器详细流程,将服务部署在linux中

    假设你已经准备好以下东西,即可进行服务部署 一台服务器(云服务器或虚拟机皆可) 已安装好的jdk 1.8 + 的环境(可自行百度) 打好的jar包(maven打jar包) 1. 在服务器中新建好你的项 ...

  7. Redis 难题突破,最经典 46 题含详细解析

    1.什么是 Redis? Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key-value 数据库. Redis 与其他 key - value 缓存产品有以下三个特点: (1)R ...

  8. 详细通俗重点CRF层讲解

    本文翻译自GitHub博客上的原创文章,结尾有原文链接.文章没有晦涩的数学公式,而是通过实例一步一步讲解CRF的实现过程,是入门CRF非常非常合适的资料. 相关项目代码: BERT-BiLSMT-CR ...

  9. 超详细中文预训练模型ERNIE使用指南-源码

    作者 | 高开远,上海交通大学,自然语言处理研究方向 最近在工作上处理的都是中文语料,也尝试了一些最近放出来的预训练模型(ERNIE,BERT-CHINESE,WWM-BERT-CHINESE),比对 ...

最新文章

  1. java学习笔记第三章
  2. STL中map用法详解
  3. Python通过amqp消息队列协议中的Qpid实现数据通信
  4. PHP 2014.5.21的总结:
  5. Discuz!X1 to Discuz!NT3.1论坛转换工具 v1.0
  6. Python学习札记(十一) Function2 函数定义
  7. python学习课后练习题_python初步学习-练习题
  8. go 中的关于命令行格式的使用
  9. 保研后,你们都怎么样了?
  10. 19款探岳刷隐藏教程_19款探岳怎么选,小编在此支你几招 拿起小本本记住了
  11. python matplotlib 官方配色表
  12. python-turtle(海龟绘图)圣诞树
  13. matlab导入表格画图,matlab从excel表格导入数据画图-在matlab上如何导入excel表格然后画图...
  14. 消除span之间的空隙
  15. oracle日志如何查看,oracle如何查看日志
  16. KNIME的数据库连接
  17. Docker入门介绍
  18. 点云综述一稿 点云硬件、点云软件、点云处理算法、点云应用以及点云的挑战与展望
  19. virgo,基于osgi的模块化运行容器
  20. TestNG教程一:testNG简介

热门文章

  1. 为什么c语言中会引入ASCII,C语言中ASCII码是什么意思?
  2. [转]关于iOS多线程,你看我就够了
  3. 吴恩达深度学习课件和课后习题
  4. 微信小程序3D轮播图实现
  5. trinity的简介、下载及使用
  6. Apache Karaf 存在远程代码执行漏洞
  7. 机器学习系列(三)——目标函数、损失函数以及代价函数
  8. 2020年Q3房产行业网络关注度分析报告
  9. pointpillars--kitti训练
  10. python 列表 常用操作 列表的循环遍历