效果图

CardView是Android5.0之后出现的,用它可以实现上图所展现的圆角效果、阴影效果。实现方式直接看代码:

第一步:

compile 'com.android.support:cardview-v7:25.0.1' //gradle导入CardView支持包

第二步:

效果图

android:layout_width="match_parent"

android:layout_height="150dp"

android:layout_marginLeft="10dp"

android:layout_marginRight="10dp"

android:layout_marginTop="10dp"

app:cardBackgroundColor="#FF8800"

app:cardCornerRadius="10dp"

app:cardElevation="8dp">

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_gravity="center"

android:gravity="center"

android:text="测试文本"

android:textColor="@android:color/white"

android:textSize="72sp" />

API说明

cardBackgroundColor 设置背景颜色,此处直接设置background是不生效的

cardCornerRadius 设置圆角边大小

cardElevation 阴影大小

cardMaxElevation 最大的阴影大小

cardPreventCornerOverlap 在v20和之前的版本中添加内边距,这个属性是为了防止卡片内容和边角的重叠

cardUseCompatPadding 设置内边距,v21+的版本和之前的版本仍旧具有一样的计算方式

contentPadding 内边距

contentPaddingBottom

contentPaddingLeft

contentPaddingRight

contentPaddingTop

cardUseCompatPadding 属性详解

上述代码在API21之前版本运行效果

API21之前效果图

上述代码在API21之后版本运行效果

API21之后效果图

可以看到,当我们设置了卡片阴影效果之后,在API21之前的机型上,CardView会在整体设置大小之内预留出阴影部分的位置,因此实际上的显示出来的效果会比我们想要的大小会小一圈。而API21之后的阴影是绘制在指定View大小之外的

为了兼容低版本机型,可以设置 app:cardUseCompatPadding="true" ,这样,在高版本机型上显示效果就会与低版本机型保持一直,此时你在布局时,设置View大小应该考虑到阴影部分的大小

cardPreventCornerOverlap 属性详解

我在cardView中添加了一个ImageView,代码如下

android:layout_width="match_parent"

android:layout_height="150dp"

android:layout_marginLeft="10dp"

android:layout_marginRight="10dp"

android:layout_marginTop="10dp"

app:cardCornerRadius="10dp"

app:cardBackgroundColor="@color/colorPrimary">

android:layout_width="match_parent"

android:layout_height="match_parent"

android:src="@mipmap/ez"

android:scaleType="centerCrop"/>

在不同版本手机上运行效果是这样的

API20以前效果

API20以后效果

在Android5.0以上运行效果是很令人满意的,但是在5.0以前,CardView内容是不会自动裁切圆角边的,显示出来的效果就很LOW了

如果我在CardView上加上 app:cardPreventCornerOverlap="false" ,效果是这样的

app:cardPreventCornerOverlap="false

好吧,很明显,app:cardPreventCornerOverlap属性默认是true,若为true,这会在CardView内添加边距,防止CardView的圆角边与里面的内容重合

为CardView添加点击效果

点击浮动效果

CardView默认是不能被点击的,要添加点击效果,首先需要添加

android:clickable="true"

自定义CardView点击效果,在/res/animator下创建card_view_click.xml

android:state_enabled="true"

android:state_pressed="true">

android:duration="@android:integer/config_shortAnimTime"

android:propertyName="translationZ"

android:valueTo="3dp"

android:valueType="floatType" />

android:duration="@android:integer/config_shortAnimTime"

android:propertyName="translationZ"

android:valueTo="0dp"

android:valueType="floatType" />

在CardView上添加属性

android:stateListAnimator="@animator/card_view_click"

注意:·android:stateListAnimator·属性仅支持API21以上的Android版本,因此需要创建/layout-v21,将添加动画效果的布局文件放到layout-v21下,当Android版本大于API21时才会加载此布局文件。在layout可以添加不带动画的布局文件,或者用其他效果代替,这个我就不管了。。。

可以在API21以下为CardView添加android:foreground="?attr/selectableItemBackground",这个是Android自带的一个点击效果,为点击区域添加高亮显示,但是实际效果很LOW,强烈不建议。。。

最后。。。侵权必究,毕竟写了一下午~

如以上内容有任何错误或补充,欢迎加QQ:1195211669 ,验证信息:简书

android卡片式网格,CardView(卡片式布局)相关推荐

  1. Android Material Design 之 CardView卡片式布局

    文章目录 效果图 一.CardView是什么? 二.使用步骤 1.布局 2.属性 总结 效果图 一.CardView是什么? CardView是一个视图容器,继承自FrameLayout,CardVi ...

  2. Android开发:使用CardView实现卡片式设计

    开头引用一段官网的介绍 A FrameLayout with a rounded corner background and shadow. CardView uses elevation prope ...

  3. CardView卡片式登录界面

    [楔子]我们常为基本所有开发都要遇到的登录界面快速设计而犯愁,那么可以尝试一下卡片式控件,将需要的控件用卡片圈起来,使整个界面看起来十分舒爽.卡片式设计似乎天生就是为了应用程序而存在着的一种独特的设计 ...

  4. Android5.0新特性:CardView卡片式设计

    CardView卡片式设计 Android 5.0最主要的变化就是采用了全新的Material Design界面.Material Design就是材质化设计,材质化设计指的是物体是有质地的,两个控件 ...

  5. cardView卡片式设计、改变阴影颜色、改变圆角大小

    Android 5.0给我们提供了design风格的设计模式,cardview cardview是继承自framelayout的,并且可以设置圆角和阴影使得控件具有立体效果,cardview也可以包含 ...

  6. php卡片式排版显示,卡片式设计思考

    在互联网产品中,除了内容型外,一些功能型的产品信息内容也是相当巨大的,特别是管理控制系统,业务管理.功能操作.数据展示等.在信息量这么大的页面中除了重视内容质量外,形式功能的组织与呈现也是同等重要,对 ...

  7. 关于HCE——Android手机NFC模拟刷卡成果和心得(上)

    关于HCE--Android手机NFC模拟刷卡成果和心得 一.前言 在最近,开始研究了手机模拟NFC刷卡的一些内容,想是自己实现一次手机模拟刷卡. NFC大家应该都了解,这两年的安卓手机基本都是支持了 ...

  8. Android Studio Profiler CPU检测卡顿

    前言 Android Studio 3.0 及更高版本中的 Android Profiler 取代了 Android Monitor 工具.Android Profiler工具可提供实时数据,帮助您了 ...

  9. Android 流畅度评估及卡顿定位、优化

    转载:在路上的博客:Android 流畅度评估及卡顿优化 导言:本文主要是关于 Android 流畅度和卡顿优化的全方位介绍,算是对 2020 部分工作的总结. 文章目录 1.渲染和流畅概念 (1)为 ...

最新文章

  1. linux 内核模块 编写例子,Linux内核模块实例
  2. mysql补丁如何安装_神技_如何快捷下载Oracle补丁的方法?!
  3. 设计模式 -- 中介者设计模式 (Mediator Pattern)
  4. eclipse 设置 按键提示
  5. mysql 5.02审计_CentOS 7.2 mysql-5.7.17 审计插件安装、开启与设定
  6. C# WinForm TreeView用法总结
  7. Matlab cell矩阵处理
  8. Docker系列之.NET Core入门(三)
  9. 暴雪帝国辉煌能否延续
  10. leetcode 151 python
  11. 【机器学习】集成学习--AdaBoost
  12. 谁敢花35万再加盟瑞幸?
  13. 黄子韬现身助力公益 百度推出听障儿童手语翻译小程序
  14. CMS:文章管理之视图(4)
  15. 使用Vue对接网易云音乐
  16. python蓝牙模块_Python蓝牙模块lightblue在mac osx 10.8上不起作用
  17. cass简码大全_南方CASS简码.doc
  18. html 文本框自动补全,自动补全(input处理)
  19. java 导出word文件,支持导出表格和图片
  20. python点到直线的距离_点到直线距离公式的几种推导

热门文章

  1. 明确一下自己准备学习的目标
  2. 步进电机———驱动器原理
  3. CVPR论文解读 | 点云匹配的旋转不变变压器
  4. ubuntu下载安装一条龙服务
  5. zz 邮件列表的文化与礼节
  6. 古诗文本自动生成唐诗文本生成(算例代码)
  7. 新浪微博 分享 功能的实现
  8. linux下gcc简介
  9. 天选姬 - 桌面宠物
  10. C/C++ strlen函数