6.如何使用CardView制作卡片布局效果

【Devexpress】GridControl之CardView 本来没有想写这篇文章,因在论坛中看见有人提问,激起了我心底的那份冲动。原来做过的一个项目中本来准备添加CardView模块,后因客户有变故,此模块便流产了。心中总是挂念,于是乎有了这篇文章。 不多说,先上效果图,无图无真相。 图1 为程序启动时的模样                                                   图2 为点击隐藏>一列后的模样 本 阅读详情
/**
 * 作者:Pich
 * 原文链接:http://me.woblog.cn/
 * QQ群:129961195
 * 微信公众号:woblog
 * Github:https://github.com/lifengsofts
 */

详解RecyclerView系列文章目录

概述

卡片的效果现在的应用还是很常见的,特别是新闻应用,很适合用这类的布局,先来一张效果图:

同时实现这一的效果也很简单,只需要使用Google提供的CardView。

Item布局

在RecyclerView的item中写入CardView,它相当于一个FrameLayout,因此我们需要将他包裹到最外层。

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  android:id="@+id/card_view_four"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:layout_marginTop="@dimen/activity_horizontal_margin"
  android:layout_marginLeft="@dimen/activity_horizontal_margin"
  android:layout_marginRight="@dimen/activity_horizontal_margin"
  android:layout_gravity="center"
  android:clickable="true"
  android:foreground="?android:attr/selectableItemBackgroundBorderless"
  app:cardCornerRadius="@dimen/activity_horizontal_margin"
  app:cardElevation="8dp">
  <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <ImageView
      android:id="@+id/iv"
      android:layout_width="match_parent"
      android:layout_height="100dp"
      android:scaleType="centerCrop"
      android:src="@mipmap/ic_launcher" />
    <TextView
      android:id="@+id/tv"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:padding="5dp"
      android:text="这是一段测试文本这是一段测试文本这是一段测试文本这是一段测试文本这是一段测试文本这是一段测试文本这是一段测试文本这是一段测试文本这是一段测试文本这是一段测试文本这是一段测试文本" />
  </LinearLayout>
</android.support.v7.widget.CardView>

这里使用了几个常用的属性:

foreground:设置了他在Api21以后就有水波效果

cardCornerRadius:圆角的半径

cardElevation:阴影的大小

其他的属性我们在分析CardView的源码的时候详细讲解。

接下来就很简单了,使用我们前面说的方法显示这个Item就有上面的效果了。

自动计算Item高度(可选)

可以发现上面的Item中的图片是写死的,其他我们是可以动态计算出来的,让每个图片都最大显示,这样美观点,关键点就是在bindData方法中:

//如果有高度,就直接取出来不用再计算了
final Integer height = heights[position];
if (height == 0) {
  //没有高度,需要计算
  Glide.with(CardViewActivity.this).load(d).diskCacheStrategy(DiskCacheStrategy.ALL)
      .into(new SimpleTarget<GlideDrawable>() {
        @Override
        public void onResourceReady(GlideDrawable resource,
            GlideAnimation<? super GlideDrawable> glideAnimation) {
          Log.d("TAG", iv.getWidth() + "," + resource.getIntrinsicWidth());
          //计算ImageView的高度
          int imageWidth = resource.getIntrinsicWidth();
          int imageHeight = resource.getIntrinsicHeight();
          int imageViewWidth = iv.getWidth();

          double scale = imageWidth * 1.0 / imageViewWidth;
          LayoutParams layoutParams = iv.getLayoutParams();
          int h = (int) (imageHeight / scale);
          layoutParams.height = h;
          iv.setLayoutParams(layoutParams);
          iv.setImageDrawable(resource);

          heights[position]=h;
        }
      });
} else {
  //已经计算了,直接拿出来用
  LayoutParams layoutParams = iv.getLayoutParams();
  layoutParams.height = height;
  iv.setLayoutParams(layoutParams);

  Glide.with(CardViewActivity.this).load(d).diskCacheStrategy(DiskCacheStrategy.ALL)
    .into(iv);
}

这样就出现了这样的效果

这个计算方法也可以用到前面我们讲的瀑布流效果中,这样就可以解决Item不会到处跳动了。

Android CardView卡片布局详解(八) CardView卡片布局是Android 5.0之后推出的布局效果,一般用于显示阴影和圆角效果的UI。CardView继承自FrameLayout帧布局,所以它其实还是一个布局。cardBackgroundColor:设置背景色,CardView为了实现阴影效果,内部已经消耗掉了 Background属性,所以新增cardBackgroundColor属性用于设置背景色。cardCornerRadius:设置圆角半径。 阅读详情

相关推荐

通过CardView和RecyclerView实现横向卡片式滑动效果

现在来介绍两种控件RecyclerView和CardView,并通过实例将它们结合在一起实现一种横向卡片式滑动效果.1.RecyclerViewRecyvlerView是android SDK 新增加的一种控件,也被官方推荐代替ListView来使用,因为其具有更好的灵活性和代替性。2.CardViewCardView是安卓5.0推出的一种卡片式控件,内部封装了许多有用的方法来实现美观效果。3.如何

qq_21276791的博客 6989

c# DevExpress设置GridControl_cardview使用示范

devexpress_cardview_demo使用示范.rarc#winform更多下载资源、学习资料请访问优快云下载频道.c# DevExpress设置GridControl_cardview-修改record-N1-标题名的方法。devexpress-cardview-demo使用示范.rar-C#文档类资源-优快云下载。devexpress-cardview-demo使用示范.rar-C#文档类资源-优快云下载。添加对应组件,编辑框与图片控件。配置每个column对应的组件。

Txwtech 1929

Android——安卓卡片样式——CardView使用、CardView失效等

本人所有博客均是记录自己的学习和爬坑的过程,顺便分享一些好用的东西给同学,没有任何商用行为,若有侵权,请及时联系本人1521976977@qq.com。如果对你有帮助的话不妨点赞呗~谢谢 卡片CardView 这个好东西是Android5.0推出的,Android 5.0版本中新增了CardView,CardView继承自FrameLayout类,并且可以设置圆角和阴影,使得 控件具有立体性,也可...

Lemon_wzq的博客 4750

【WinForm+DevExpress】CardView 设置字段的样式

效果图 TotalAmount字段是新加的,用来计算总价(orderPrice*orderCount),在数据库表中不存在 实现 第一步:添加一个GridControl,设置在父容器中停靠,设置数据源,将GridControl的MainView转换成CardView 第二步:在Run DesDesigner设计界面中新加一列TotalAmount,设置列的Caption属性和Field...

早起吃虫的博客 2762

Android手把手教你实现卡片式瀑布流效果(RecyclerView+CardView,附源码)

Android手把手教你实现卡片式瀑布流效果 卡片式的瀑布流效果是一种非常美观的UI设计,自从Android 5.0的 RecyclerView出现以后,实现瀑布流变得十分简单,本文将一步步带领读者去实现一个卡片式的瀑布流布局。 一、先上效果图 二、代码实现卡片式瀑布流 1. 涉及到要使用的类和控件 类或控件 介绍 作用

山中小僧的进阶之路 6075

[DevExpress]CardView的使用

CardView的使用效果代码 效果 代码 #region 重绘元格GUI /// <summary> /// 重绘单元格 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void GridView1

德仔 1726

CardView 造就不一样的样式

//第一步    添加   buildGradle compile 'com.android.support:cardview-v7:24.0.0-alpha2' //第二步 在布局文件中设置属性 xml version="1.0" encoding="utf-8"?> xmlns:android="http://schemas.android.com/a

xujiajian119的博客 1820

一种超好看的winformwinform控件

拉入控件,然后再去属性里面更改即可。字数字数字数字数字数字数字数字数

【Android studio】CardView 卡片布局简单学习 和 报错的解决方法!

Android studio:CardView 卡片布局简单学习 和 报错的解决方法!

凉城古梦猫扑街的博客 5956

几何非线性-屈曲分析

结构系统的破坏分为两种,一类是因材料软化而引起的强度破坏,另一类是几何软化使得结构的几何形状发生极大变化,从而使结构丧失承载能力。在材料力学中是这样定义压杆失稳的:中心受压直杆(理想模型)在直线状态下平衡,由稳定平衡转化为不稳定平衡时所受的轴向压力的界限值,称为临界压力。中心受压直杆在临界压力的作用下,其直线形态的平衡开始丧失稳定性,简称为失稳。显然,这个定义只使用于理想的压杆模型,那么关于失稳和屈曲是否存在一般性定义呢?

YORU_NO_KUNI的博客 1万+

树莓派5首次开机保姆级教程(无显示器通过VNC连接树莓派桌面)

选择 Interface Options > VNC > Yes 启用服务。2.在Windows电脑上安装VNC软件。重启树莓派:sudo reboot。3.使用VNC远程访问树莓派桌面。

qq_34184505的博客 2349

android卡片布局CardView

android5.0版本推出了新的控件其中CardView则是卡片式布局效果图:         josn数据:{ "activity": [{ "img": "http://pic27.photophoto.cn/20130522/0010023309252566_b.jpg", "tiele": "android " }, { "img": "

Dianliang的博客 1997

在不同版本Python中安装PyQT5及PyQT5-Tools

在不同版本Python中安装PyQT5及PyQT5-Tools

zoomgu680的博客 2万+

Android Material Design之CardView(卡片式布局)

目录 1.CardView概念 2.CardView常用属性 3.CardView的使用 3.1 创建CardView 3.2 CardView的使用注意事项 4.CardView案例 4.1 效果图 4.2 步骤1:在MainActivity.xml中添加ListView 4.3步骤2:为ListView的item创建布局,并在布局中加入GridView 4.4步骤3:...

云上道人的博客 7531

单片机按键识别篇---单击---双击----长按

  最近做一任务需要使用一个按键实现三种功能,分别是按键单击功能,按键双击功能和按键长按功能,可能之前没有接触过这类按键复用情况,顶多也只是简单识别单击和长按,没有想过双击以上按键功能,也是绞尽脑汁,想了半天,又上网看了些例程,算是对于按键的识别有点小小的了解,感觉这个功能挺实用,在此做个随笔。 一、思路   1.识别长按操作思路:我们使用系统定时器定时,然后让系统每过一段时间去扫描按键I/O...

weixin_30311605的博客 3660

Vue2 - 实现全景图Vr 720°全景效果查看预览功能,3D全景图流畅不卡顿渲染+手势拖拽+悬浮工具按钮,vue实现vr看720度全景效果方案讲解及示例代码(兼容电脑PC网页+手机H5移动端页面)

vue全景VR图,vue h5实现全景720预览,vue加载720全景图_vue怎么加载vr图片,vue实现vr全景看房,vue2实现全景效果,加载很慢卡怎么办,实现全景预览的插件,vue显示720度全景图,720°全景图显示,在h5中展示720°全景图,浏览全景图,基于vue实现vr全景预览,加载全景图,vue全景预览pannellum插件,vue实现3D全景图,实现720°全景图展示,在VUE 中使用three.js实现全景视频播放,vue项目中使用photo-sphere-viewer实现vr720度

🏆 前端领域优质创作者 3317

Android 5.0 CardView+ListView 卡片布局应用

先看看效果图:                  涉及技术点介绍 Android 5.0 CardView介绍: public class CardView extends FrameLayout implements CardViewDelegate {} CardView是一个ViewGroup,继承自FrameLayout类,可以在一个卡片布局中一致性的显示内容,卡片属性可以有

happy_horse的博客 8284

飞牛fnNAS免费内网穿透之zerotier篇

本文介绍了如何通过ZeroTier实现飞牛NAS的远程文件共享。首先,用户需要在ZeroTier官网注册账号并创建虚拟局域网。接着,分别在Windows和飞牛NAS上安装ZeroTier客户端,并通过SSH登录飞牛NAS进行配置。安装完成后,用户可以在ZeroTier页面中授权设备加入虚拟局域网。最后,通过Windows的“网上邻居”功能访问飞牛NAS的共享文件夹,实现跨局域网的文件共享。这种方法不仅适用于文件共享,还可以用于打印机共享和远程桌面连接。

dgnankai的专栏 2465

CardView的基本使用

CardView是用于实现卡片式布局效果的重要控件,实际上也是一个frameLayout,只是额外提供了圆角和阴影,看上去有立体效果。 效果如下: <?xml version="1.0" encoding="utf-8"?> <androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http:...

qq_35698774的博客 2万+

手把手教你学simulink(32.1)--汽车电动机管理场景示例:基于Simulink的发动机管理系统中的混合动力车辆能量管理优化

本项目旨在设计和实现一个用于混合动力车辆(Hybrid Electric Vehicle, HEV)的能量管理优化系统(Energy Management Optimization System, EMOS)。通过Simulink进行建模和仿真,确保系统的稳定性和性能。该系统采用了先进的控制策略,如模型预测控制(MPC)、模糊逻辑控制、自适应控制等,以优化燃油经济性、减少排放,并提高驾驶体验。

MHD0815的博客 186

【嵌入式Linux驱动开发】二十四、Linux I2C 驱动上手尝试

  人的前程关于眼界、关乎格局。   志之所趋,无远弗届,穷山复海不能限也;   志之所向,无坚不入,锐兵精甲不能御也。 一、I2C驱动框架简介   Linux内核将 I2C 驱动分为两部分: ①、 I2C 总线驱动, I2C 总线驱动就是 SOC 的 I2C 控制器驱动,也叫做 I2C 适配器驱动。 ②、 I2C 设备驱动, I2C 设备驱动就是针对具体的 I2C 设备而编写的驱动。 1....

悟已往之不谏 知来者之可追 1068

CardView卡片效果

这是android新推出的一个,让卡片带立体感的一个控件,就是一个卡牌,有点类似于布局那种的东西,里面可以添加控件内容 先看看运行的效果图: 1.添加依赖 implementation 'com.android.support:cardview-v7:25.3.1' 2.主界面设置一些卡片的属性: package com.example.admin.ztest; import ...

cf8833的博客 529

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

android 卡片式视图组件 cardview的使用

cardview是放在support library v7包中的一个组件(recyclerview也是在这里喔,详细会在后边的博客里介绍)       开始在写recyclerview的demo的时候,发现别人写出来的都是卡片式的布局,很好看喔~而我写的还是和原来的ListView一个样式,查了半天,最后才发现在条目布局上出现了不同,这里也就涉及到了cardview的使用。       <an

My life,my way 9268

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

android自定义阴影的卡片布局,CardView卡片布局的简单使用

有时候我们见到过App上有那种和卡片一样的布局,自定义的话太麻烦,于是有了大佬给我们集成了第三方,CardView卡片式布局设计CardView简介CardView继承自FrameLayout类.CardView是一种卡片视图,主要是以卡片形式显示内容.CardView功能CardView实现在一个卡片布局中显示相同的内容,卡片布局可以设置圆角和阴影,还可以布局其他的View。CardView即可...

weixin_30222083的博客 1091

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

CardView 卡片布局的使用

CardView继承自FrameLayout类,可以在一个卡片布局中一致性的显示内容。 卡片可以包含圆角和阴影.CardView是一个Layout,可以布局其他View。 CardView被包装为一种布局,并且经常在ListView和RecyclerView的Item布局中,作为一种容器使用。 以后会继续完善,谢谢大家,好吧,也谢谢自己能找时间写下来…… 老规矩先贴效果图:使用步骤

LOVEYourself--1314 854
上一篇: 7.如何给RecyclerView添加Click和LongClick事件
下一篇: 5.使用RecyclerView优雅的实现瀑布流效果
爱上学习啊
博客等级 码龄16年 99粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值