Android开发--CardView使用

标签: android
165人阅读 评论(0) 收藏 举报
分类:

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

这里写图片描述

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

使用CardView

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

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    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:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    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:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    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

转载自:http://www.w2bc.com/Article/36229

查看评论

CardView+ListView

  • 2015年07月22日 14:33
  • 1.06MB
  • 下载

Android5.0之CardView的使用

CardView也是一个非常炫酷的控件,一般我们将CardView配合RecyclerView来使用,当然,CardView也可以配合ListView来使用,都是可以的。OK,我们先来看一张CardV...
  • u012702547
  • u012702547
  • 2016-04-30 17:24:51
  • 9250

Android开发之CardView卡片布局

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

Android Material Design学习之四CardView

CardView的使用
  • fxDes
  • fxDes
  • 2016-03-05 22:26:36
  • 2147

Android Material Design 之 CardView

前言Material Design 推荐使用卡片布局,详情可以参照 https://material.io/guidelines/components/cards.html#简单使用下面我们使用 Re...
  • tianjf0514
  • tianjf0514
  • 2017-08-19 18:48:25
  • 623

Android CardView的使用细节

转自:Android 使用CardView轻松实现卡片式设计 Material design中有一种很个性的设计概念:卡片式设计(Cards),这种设计与传统的List Item有所区别,Cards...
  • qq_27650777
  • qq_27650777
  • 2017-03-23 13:29:23
  • 2486

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

Android studio:CardView 卡片布局简单学习 和 报错的解决方法!
  • ssh159
  • ssh159
  • 2017-01-09 12:53:08
  • 1681

CardView的具体使用方法

CardView的用法
  • Javacainiao931121
  • Javacainiao931121
  • 2016-06-20 15:04:00
  • 50418

【FastDev4Android框架开发】CardView完全解析与RecyclerView结合使用(三十二)

(一).前言:            作为Android L开始,Google更新的除了RecyclerView之外的另一控件就是CardView,其中Google官方应用Google Now就采用了...
  • jiangqq781931404
  • jiangqq781931404
  • 2015-11-23 20:50:48
  • 15469

Android CardView使用详解

转至:http://www.w2bc.com/Article/36229 Android5.0中向我们介绍了一个全新的控件–CardView,从本质上看,可以将CardView看做是...
  • h183288132
  • h183288132
  • 2016-01-16 19:27:06
  • 3202
    个人资料
    持之以恒
    等级:
    访问量: 17万+
    积分: 2161
    排名: 2万+
    最新评论