LCardView - 卡片布局,可设置阴影颜色,透明度,圆角大小,阴影宽度

LCardView - 卡片布局,可设置阴影颜色,透明度,圆角大小,阴影宽度

Android 卡片视图CardVie

访问GitHub主页

共233Star

详细介绍

LCardView

卡片布局,可设置阴影颜色,透明度,圆角大小,阴影宽度,阴影偏移量。

gradle中的引用:

gradle:
dependencies {
    implementation 'org.linwg1988:lcardview:1.5.4'
}

安卓原生的CardView没办法设置阴影的颜色,遇到UI中一些卡片布局阴影是可变的或者

阴影透明度比较淡的情况下,咱又不想往包里面添加.9图片,就自己动手写了这个卡片布局。

1.2.版本说明此版本新增了一些xml初始化属性,让布局在xml中更加直观。

1.4.版本说明:增加了X轴和Y轴偏移量属性,暂时只允许偏移至边缘位置。

1.4.1修复Android P圆角失效的问题

1.4.2修复因为偏移属性的增加导致阴影透明度影响背景色的问题

控件存在的局限性:四边阴影大小不一的时候无法设置圆角;同理设置圆角大小

的时候四边的阴影大小会自动恢复成初始值

1.5.0版本说明

此版本已经弃用四边阴影宽度分别设置的方法。

对于阴影偏移的实现进行修改替换,分为上、下、左、右四个区域,

偏移的数值为正,则从卡片中心向外偏移,

偏移的数值为负,则从卡片中心向内偏移,

你可以使用:

setShadowOffsetCenter(int offset)

进行以卡片中心的整体偏移。

1.5.2优化阴影创建的条件,只有在参数变化时才重新创建,修复View在没有测量完成时设置卡片属性导致的阴影异常,
去除setShadowOffset()方法。

1.5.4新增属性 fixedContentWidth,fixedContentHeight.使用场景:卡片布局的父布局因为动画需要大小动态
变化来对卡片布局进行隐藏或显示,若卡片尺寸是根据内部子控件大小来获得,卡片尺寸属性设置为 wrap_content,
此时卡片的父布局动态修改尺寸时会导致卡片重新测量大小。该属性值为 true 时,父布局的大小不影响卡片的测量
内部子控件的结果,故而也不会触发阴影重新创建以及内容的裁切大小。

下面是布局里面可使用的属性:

xml属性名称 中文释义
attr:leftShadowWidth 左侧阴影宽度
attr:topShadowHeight 顶部阴影宽度
attr:rightShadowWidth 右侧阴影宽度
attr:bottomShadowHeight 底部阴影宽度
attr:shadowSize 四边阴影宽度
attr:shadowStartAlpha 阴影颜色初始透明度
attr:shadowFluidShape 阴影流动形状(线性/吸附)
attr:shadowColor 阴影颜色RGB值(透明度此处无效)
attr:cardBackgroundColor 卡片背景色
attr:cornerRadius 卡片四个角的圆角半径
attr:leftTopCornerRadius 左上圆角半径
attr:rightTopCornerRadius 右上圆角半径
attr:leftBottomCornerRadius 左下圆角半径
attr:rightBottomCornerRadius 右下圆角半径
attr:elevation 卡片高度
attr:elevationAffectShadowColor 卡片高度是否影响阴影颜色
attr:elevationAffectShadowSize 卡片高度是否影响阴影宽度
attr:xOffset 卡片X轴偏移量(已弃用)
attr:yOffset 卡片Y轴偏移量(已弃用)
attr:leftOffset 卡片左半区阴影偏移量
attr:rightOffset 卡片右半区阴影偏移量
attr:topOffset 卡片上半区阴影偏移量
attr:bottomOffset 卡片右半区阴影偏移量
attr:fixedContentWidth 控件宽度是否固定为内容宽度
attr:fixedContentHeight 控件高度是否固定为内容高度

在Java代码中也有对应相关的属性设置方法。

gif效果:
img

推荐源码