关闭

[置顶] Android开发之CardView的使用

569人阅读 评论(0) 收藏 举报
分类:



         

       Android5.0中向我们介绍了一个全新的控件–CardView,从本质上看,可以将CardView看做是FrameLayout在自身之上添加了圆角和阴影效果。请注意:CardView被包装为一种布局,并且经常在ListView和RecyclerView的Item布局中,作为一种容器使用。

CardView应该被使用在显示层次性的内容时;在显示列表或网格时更应该被选择,因为这些边缘可以使得用户更容易去区分这些内容。

使用CardView

首先,假设你的布局如同下面的形式:

<FrameLayout  xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <!-- Main Content View --> <RelativeLayout> ... </RelativeLayout> </FrameLayout>

为了使用上面的布局方式来创建一个卡片,首先你需要导入支持的依赖库(android-support-v7-cardview的jar包)在你的build.gradle文件中。

dependencies { ... compile 'com.android.support:cardview-v7:21.0.2' }

现在将FrameLayout替换为CardView,

<android.support.v7.widget.CardView  xmlns:card_view="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <!-- Main Content View --> <RelativeLayout> ... </RelativeLayout> </android.support.v7.widget.CardView>

就是这样!使用依赖库能够保证你的程序稳定的兼容之前的版本;尽管在AndroidL和之前的Android版本中对其处理方式有所不同。

定制CardView

CardView提供了一个默认的elevation(意为CardView的Z轴阴影)和圆角角度,所以每一个卡片都能够在不同的设备上保持相同的外观。然而,你也可以根据自己的需求去定制这些值。

<android.support.v7.widget.CardView  xmlns:card_view="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" card_view:cardCornerRadius="8dp" card_view:cardElevation="8dp"> <!-- Main Content View --> <RelativeLayout> ... </RelativeLayout> </android.support.v7.widget.CardView>

注意:cardElevation属性被用来决定阴影的大小以及柔和度,以至于可以逼真的模拟出对于深度效果的描述。

添加波纹点击效果

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

<android.support.v7.widget.CardView ... android:clickable="true" android:foreground="?android:attr/selectableItemBackground"> ... </android.support.v7.widget.CardView>

使用android:foreground=”?android:attr/selectableItemBackground”可以使CardView点击产生波纹的效果,有触摸点向外扩散。

对更早的版本的支持

在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

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Android CardView使用和导入出错问题

Android CardView使用和导入出错问题 第一部分:导入Android CardView出错的问题。 Android CardView是Android在support.v7包里面...
  • zhangphil
  • zhangphil
  • 2015-08-12 10:16
  • 3108

关于使用 CardView 开发过程中要注意的细节

2014 年,随着 Google 推出了全新的设计语言 Material Design,还迎来了新的 Android 支持库 v7,其中就包含了 Material Design 设计语言中关于 Car...
  • leafact
  • leafact
  • 2016-06-02 09:28
  • 2491

Android开发之CardView卡片布局

CardView介绍CardView是Android 5.0系统引入的控件,相当于FragmentLayout布局控件然后添加圆角及阴影的效果;CardView被包装为一种布局,并且经常在ListVi...
  • u010498248
  • u010498248
  • 2016-09-13 10:59
  • 20847

Android开发--CardView使用

Android5.0中向我们介绍了一个全新的控件–CardView,从本质上看,可以将CardView看做是FrameLayout在自身之上添加了圆角和阴影效果。请注意:CardView被包装为一种布...
  • smbroe
  • smbroe
  • 2015-04-26 08:41
  • 8817

Android开发之CardView使用的相关注意事项

前言:CardView是v7包下的一个控件,属于MD设计风格,今天我们就来学习一下CardView的使用以及注意事项!
  • qq_32306361
  • qq_32306361
  • 2017-05-22 15:34
  • 160

Android应用开发:CardView的使用及兼容

引言 在Google I/O 2014上,Google公布了Android L Preview版本,此版本的UI有了非常大的改变,很炫很给力!同时,Google也给出了两个可以向下兼容的控件放到...
  • baidu_35738377
  • baidu_35738377
  • 2017-02-10 09:05
  • 213

Android--添加阴影效果--CardView的使用

Android5.0中向我们介绍了一个全新的控件–CardView,从本质上看,可以将CardView看做是FrameLayout在自身之上添加了圆角和阴影效果。请注意:CardView被包装为一种布...
  • copy_yuan
  • copy_yuan
  • 2016-07-11 16:41
  • 18364

Android中CardView的简单使用

Android中CardView的简单使用
  • luulmm520
  • luulmm520
  • 2016-12-06 23:38
  • 213

Android5.0中Cardview的简单使用

CardView 写在前面,任何控件有其优点,就会有缺点。Android 5.0中增加一个全新的控件–CardView,从本质上看,可以将CardView看做是FrameLayout在自身之上添加了...
  • woshishui5577
  • woshishui5577
  • 2016-06-24 17:39
  • 269

Android CardView使用问题记录

问题一:明明在cardview中设置了圆角,为啥xml视图上面还是直角,最开始用cardview时候会有这东西设置无效的错觉,这个问题直接运行到真机上面看就可以了。问题二:明明我给carcview设置...
  • yangshuaionline
  • yangshuaionline
  • 2017-05-01 14:47
  • 162
    个人资料
    • 访问:262530次
    • 积分:4190
    • 等级:
    • 排名:第8512名
    • 原创:173篇
    • 转载:66篇
    • 译文:0篇
    • 评论:63条
    博客专栏
    文章分类
    最新评论