安卓 CardView 可以实现圆角、阴影、涟漪效果。
CardView 认不到?
在 app 的 gradle 文件的 dependencies 节添加:'implementation 'com.android.support:cardview-v7:26.1.0'。
当然,实际可能不是这个版本。
圆角(圆形)图片
ImageView 不支持圆角,更别说圆形了,利用 CardView 解决吧。
这样图片也圆角了(我们这里实际是圆形),而且被砍掉的四个角,是透明的,不影响背景呈现。
圆角(圆形)图片就轻松实现了。
不过,在安卓 5.0 以下(不含)还是比较麻烦,因为它不会剪切内容,它会增加 padding 以保证内层元素完全不在切割范围内。就是下面这个样子,形成一个外接圆。
如果我们设置 app:cardPreventCornerOverlap="false",它倒是不增加 padding 了,但它仍然不切割内容,如下图:
布局还有点乱了,这操蛋的。不过好消息是,我查了一下,< 5.0 版本的安卓不足 20%,如果不是大型应用,可以忽略了,使用这种老手机的,也许并不是我们的客户,也许正是对面的安卓测试员。
阴影
前面不是做了圆角图片么?我们可以做一点阴影,这样看起更有立体感。
涟漪效果
所说是设置如下属性,然后点击的时候,点击处就会辐射一个淡淡的圆形黑影,以显示点击的动态效果,不过我没试过。
就这点?
还常常用来实现菜单、实现对话框(比如修改密码对话框)。