LCardView - 卡片布局,可设置阴影颜色,透明度,圆角大小,阴影宽度
LCardView - 卡片布局,可设置阴影颜色,透明度,圆角大小,阴影宽度
Android 卡片视图CardVie
共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: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:leftOffset | 卡片左半区阴影偏移量 |
attr:rightOffset | 卡片右半区阴影偏移量 |
attr:topOffset | 卡片上半区阴影偏移量 |
attr:bottomOffset | 卡片右半区阴影偏移量 |
attr:fixedContentWidth | 控件宽度是否固定为内容宽度 |
attr:fixedContentHeight | 控件高度是否固定为内容高度 |
在Java代码中也有对应相关的属性设置方法。