目录:

CardView简介

CardView基本属性(xml文件中)

某些属性使用效果

CardView使用方法

高级效果 波纹点击(像点击Button那样)

注意 对低版本的兼容处理

CardView简介

CardView是API21(Android5.0)发布的卡片式控件。简单的说就是卡片视图,扁平化视图。

继承自FrameLayout

public class CardView extends FrameLayout

CardView可以作为根布局使用,也可以作为ReCycleView或者ListView的Item

CardView基本属性(xml文件中)

app:cardBackgroundColor这是设置背景颜色

app:cardCornerRadius这是设置圆角大小

app:cardElevation这是设置阴影(z轴),具体效果见下面

app:contentPadding 设置内容的padding CardView子布局与CardView边界

app:contentPaddingLeft 设置内容的左padding

app:contentPaddingTop 设置内容的上padding

app:contentPaddingRight 设置内容的右padding

app:contentPaddingBottom 设置内容的底padding

app:cardUseCompatPadding 是否使用CompatPadding, 官方说是设置内边距,个人感觉不到什么,具体效果见下面

app:cardPreventCornerOverlap 是否使用PreventCornerOverlap,设置内边距(API20及以下中),通常该属性为了避免内容和边角的重叠

某些属性使用效果

阴影Elevation

10dp的阴影Elevation.png

30dp的Elevation(阴影).png

app:contentPadding CardView子布局与CardView边界

ContentPadding为10dp效果 背景为红

app:cardUseCompatPadding 设置内边距

cardUseCompatPadding="true".png

cardUseCompatPadding_false.png

CardView使用方法

当前IDE:Android Studio 2.2正式版

jdk1.8.102

compileSdkVersion 25

buildToolsVersion "25.0.2"

gradle 导包

dependencies {

...

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

}

CardView是通常是定义在布局文件中:

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/activity_main"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:gravity="center_vertical|center_horizontal"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context="com.minminaya.cardview_learning.MainActivity">

android:id="@+id/w"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

app:cardCornerRadius="10dp"

app:cardElevation="10dp">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:src="@mipmap/me"/>

通常情况下,只需要radius与elevation就可以达到很漂亮的卡片效果,甚至悬浮式的

当然,也可以在code中使用:

public void setRadius(float radius)

public void setContentPadding

public void setUseCompatPadding(boolean useCompatPadding)

public void setCardBackgroundColor(@ColorInt int color)

...

高级效果 波纹点击(像点击Button那样)

默认CardView的android:clickable属性是false的,也就是默认不可以点击,没有任何触摸反馈

实现方法:

在CardView布局文件节点添加

android:clickable="true"

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

gif图录了看不出来就不放图了QAQ

注意 对低版本的兼容处理

CardView在API 21以下,圆角效果会丢失:

android:layout_width="wrap_content"

android:layout_height="wrap_content"

app:cardCornerRadius="25dp" >

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:src="@mipmap/me"/>

不同安卓版本的效果:

Android7.0.png

Android4.4.png

可以看出很明显API19(4.4)出现很大的问题:虽然有圆角效果,但是图片四周是方的

解决方法:

在CardView布局里添加cardPreventCornerOverlap(默认是true)属性,值为false

cardPreventCornerOverlap官方文档的意思是说在API20及更低版本中添加内边距,其实这个属性是为了防止卡片内容和边角的重叠

加了之后变成了这样:

cardPreventCornerOverlap为false

!!!!预警

这和以前竟然不一样了,以前是图片的直角压在了卡片圆角上,而且直角还是在CardView外面,好吧,估计是Android官方优化了一下,现在是卡片效果但是会多出一条白边,啊哈哈哈哈哈啊

大召唤术。。。。借用一张图---------

以前的效果

本篇完

android自动生成cardview,CardView相关推荐

  1. Android自动生成Shape资源文件,迈出可视化脚手架第一步(上)

    系列文章目录 第一章:Android自动生成代码,可视化脚手架,将大大提高开发效率 第二章:Android自动生成代码,可视化脚手架之环境搭建 第三章:Android自动生成代码,可视化脚手架之基础信 ...

  2. android自动生成dimens适配文件

    android自动生成dimens适配文件 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 android自动生成dimens适配文件 前言 一.使用步骤 1.引入库 2. ...

  3. android自动生成dimens适配文件,无需Java工具类

    ** android自动生成dimens适配文件 ** 在编写ui界面时因为手机分辨率大小不同,所以展现出来的效果也是不同的,这个时候就需要考虑适配器,让根据手机分辨率自动适配相应尺寸来展示界面,可以 ...

  4. android 如何生成表格,SmartTable:Android 自动生成表格框架

    一款android自动生成表格框架 功能介绍 快速配置自动生成表格: 自动计算表格宽高: 表格列标题组合: 表格固定左序列.顶部序列.第一行.列标题.统计行: 自动统计,排序(自定义统计规则): 表格 ...

  5. android 可编辑的表格框架,smartTable-一款android自动生成表格框架---A Android automatically generated table framework...

    一款android自动生成表格框架功能介绍 1. 快速配置自动生成表格: 2. 自动计算表格宽高: 3. 表格列标题组合: 4. 表格固定左序列.顶部序列.第一行.列标题.统计行: 5. 自动统计,排 ...

  6. php动态生成apk渠道包,Android自动生成渠道包

    承接上文Android应用的自动化构建,我们已经通过ANT自动构建了应用,那接下来的问题是,如何自动构建渠道包,这里强烈推荐一篇文章美团Android自动化之旅-生成渠道包. 美团提到的第三种方式,截 ...

  7. android 自动生成aidl,[Android]用AIDL生成Service

    对于用aidl生成Service,之前作过,这里记录一下,顺便也整理一下思路.java 一.建立aidl文件.android 这个aidl文件必须包括包名,和用interface的形式定义方法.ecl ...

  8. Android自动生成表格,丰富配置

    前言 写完了android图表,一个朋友说他们公司需要做表格.问我能做吗?我答这有啥不能做.我就开始几个吧唧吧唧写,快写完了,朋友说表格在android体验不好.坑壁啊,最好放在github上.通过这 ...

  9. android自动生成cardview,学习使用Material Design控件(三)使用CardView实现卡片效果...

    本文主要介绍CardView的使用,CardView是继承自FrameLayout,使用比较简单,只需要用CardView包含其他View就可以实现卡片效果了. 实现效果如下: 加入依赖库 depen ...

  10. Android 自动生成表格

    Layout.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:a ...

最新文章

  1. kubernetes Helm
  2. 【Kafka】Kafka-数据倾斜问题-参考资料-解决方案
  3. jQuery.extend()方法
  4. 潍坊学院计算机系崔玲玲,人工免疫算法在引水工程中的应用.pdf
  5. 服务器虚拟多台linux,VirtualBox环境下基于多台Ubuntu虚拟机的Hadoop分布式计算环境搭建...
  6. c++ unix time 运行时间_C++编程:c++里时间类型详解 time_t等
  7. junit return null该怎么测试_3 分钟生成一个单元测试报告,这个样式爱了
  8. 电脑ps4,人在外心在家,教你用PC/MAC远程打PS4
  9. 体脂率在线计算机,体脂率(BFR)计算器
  10. android 拨号隐藏号码,技巧:手机隐藏代码大集合 知道五个以上是大神
  11. 百度指数批量查询获取工具
  12. u盘数据恢复软件哪个好?怎么恢复u盘数据?
  13. 音频开发_Microphone Array Beamforming_Fractional Delays
  14. 浅谈webGl vr全景模式
  15. otf和ctf的意义_北京邮电大学出版社
  16. 计算机电源怎么设置玩游戏不卡,端游绝地求生怎么设置不卡
  17. mysql 客户端SSL错误2026 (HY000)
  18. echarts 设置平均线,警戒线markLine属性
  19. css3禅密花园叫什么名字_CSS秘密花园: 环形文本
  20. 英语口语八十之[如何聊电影话题]

热门文章

  1. 百度识图api连接与解析详细数据
  2. sqlserver2008导入mysql_SQL Server 2008怎么导入sql文件?-SQL Server 2008导入sql文件的三种方法 - 河东软件园...
  3. 2021-06-24
  4. pdfFactory Pro 不能被安装(AddPrinterDriver 失败)...找不到指定的模块
  5. 00.Spring源码编译
  6. 【C#】AutoCAD二次开发笔记
  7. hd计算机技术,BD和HD的区别是什么?
  8. 使用selenium调用qq游览器(基于Chrome浏览器)
  9. CloudMounter——将大容量网盘服务巧妙地挂载到系统文件管理器中
  10. android反编译打包出错,APK打包错误,能解决的给红包!