android卡片式网格,CardView(卡片式布局)
效果图
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(卡片式布局)相关推荐
- Android Material Design 之 CardView卡片式布局
文章目录 效果图 一.CardView是什么? 二.使用步骤 1.布局 2.属性 总结 效果图 一.CardView是什么? CardView是一个视图容器,继承自FrameLayout,CardVi ...
- Android开发:使用CardView实现卡片式设计
开头引用一段官网的介绍 A FrameLayout with a rounded corner background and shadow. CardView uses elevation prope ...
- CardView卡片式登录界面
[楔子]我们常为基本所有开发都要遇到的登录界面快速设计而犯愁,那么可以尝试一下卡片式控件,将需要的控件用卡片圈起来,使整个界面看起来十分舒爽.卡片式设计似乎天生就是为了应用程序而存在着的一种独特的设计 ...
- Android5.0新特性:CardView卡片式设计
CardView卡片式设计 Android 5.0最主要的变化就是采用了全新的Material Design界面.Material Design就是材质化设计,材质化设计指的是物体是有质地的,两个控件 ...
- cardView卡片式设计、改变阴影颜色、改变圆角大小
Android 5.0给我们提供了design风格的设计模式,cardview cardview是继承自framelayout的,并且可以设置圆角和阴影使得控件具有立体效果,cardview也可以包含 ...
- php卡片式排版显示,卡片式设计思考
在互联网产品中,除了内容型外,一些功能型的产品信息内容也是相当巨大的,特别是管理控制系统,业务管理.功能操作.数据展示等.在信息量这么大的页面中除了重视内容质量外,形式功能的组织与呈现也是同等重要,对 ...
- 关于HCE——Android手机NFC模拟刷卡成果和心得(上)
关于HCE--Android手机NFC模拟刷卡成果和心得 一.前言 在最近,开始研究了手机模拟NFC刷卡的一些内容,想是自己实现一次手机模拟刷卡. NFC大家应该都了解,这两年的安卓手机基本都是支持了 ...
- Android Studio Profiler CPU检测卡顿
前言 Android Studio 3.0 及更高版本中的 Android Profiler 取代了 Android Monitor 工具.Android Profiler工具可提供实时数据,帮助您了 ...
- Android 流畅度评估及卡顿定位、优化
转载:在路上的博客:Android 流畅度评估及卡顿优化 导言:本文主要是关于 Android 流畅度和卡顿优化的全方位介绍,算是对 2020 部分工作的总结. 文章目录 1.渲染和流畅概念 (1)为 ...
最新文章
- linux 内核模块 编写例子,Linux内核模块实例
- mysql补丁如何安装_神技_如何快捷下载Oracle补丁的方法?!
- 设计模式 -- 中介者设计模式 (Mediator Pattern)
- eclipse 设置 按键提示
- mysql 5.02审计_CentOS 7.2 mysql-5.7.17 审计插件安装、开启与设定
- C# WinForm TreeView用法总结
- Matlab cell矩阵处理
- Docker系列之.NET Core入门(三)
- 暴雪帝国辉煌能否延续
- leetcode 151 python
- 【机器学习】集成学习--AdaBoost
- 谁敢花35万再加盟瑞幸?
- 黄子韬现身助力公益 百度推出听障儿童手语翻译小程序
- CMS:文章管理之视图(4)
- 使用Vue对接网易云音乐
- python蓝牙模块_Python蓝牙模块lightblue在mac osx 10.8上不起作用
- cass简码大全_南方CASS简码.doc
- html 文本框自动补全,自动补全(input处理)
- java 导出word文件,支持导出表格和图片
- python点到直线的距离_点到直线距离公式的几种推导