CardView-卡片布局
简介
CardView是一个带圆角和阴影的FrameLayout,继承关系如下:
java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
↳ android.widget.FrameLayout
↳ androidx.cardview.widget.CardView
重要的属性有:
- 圆角-对应xml属性:
app:cardCornerRadius
, 对应字段:radius
; - 阴影-对应xml属性:
app:cardElevation
, 对应字段:elevation
; - padding-对应xml属性:
app:contentPadding
, 对应方法:setContentPadding()
;
举例
通过简介,大致对CardView有了一个初浅的认识,先来看一个简单的效果:
这个简单的例子中,使用SeekBar
来动态控制CardView的圆角、阴影和padding。下面跟着源码看看实现原理:
-
创建布局文件
activity_card_view.xml
如下:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" android:paddingBottom="200dp" tools:context=".newfeature.CardViewActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Card View" /> <androidx.cardview.widget.CardView android:id="@+id/card_view"