
上QQ阅读APP看书,第一时间看更新
1.1.1 卡片视图
随着手机越来越先进,开发者已经不满足简单地显示一张张图片,而要设计更多的花样出来。比如Android提供了一个卡片视图CardView,顾名思义它拥有卡片式的圆角边框,边框外缘有一圈阴影,边框内缘有一圈空白。准确地说,CardView实际上是一种布局类视图,它继承自框架布局Framelayout,可以当作具有边框效果的特殊布局。
使用卡片视图之前,要先修改build.gradle,在dependencies节点中加入下面的配置表示导入CardView库:
implementation 'androidx.cardview:cardview:1.0.0'
CardView的常用属性与方法的说明见表1-1。
表1-1 CardView的常用属性与方法说明

使用CardView属性时需要注意以下两点:
(1)因为CardView库是作为外部库导入的,所以节点属性要像对待自定义控件一样,即先在根节点定义一个命名空间app指向res-auto,然后使用“app:属性名称”的形式定义属性值,不可直接使用“android:属性名称”。
(2)在设置阴影宽度的同时设置对应宽度的边距,因为阴影宽度不计入卡片的宽高,如果卡片的宽和高设置为wrap_content,阴影部分就会被自动截掉。
下面是使用卡片视图的示例代码:
(完整代码见picture\src\main\java\com\example\picture\CardViewActivity.java)

卡片视图的显示效果如图1-1和图1-2所示。图1-1为阴影宽度为6的画面,此时卡片看起来比较薄;图1-2为阴影宽度为15的画面,此时卡片看起来比较厚。

图1-1 阴影宽度为6的卡片视图

图1-2 阴影宽度为15的卡片视图