# LCardView **Repository Path**: ruanke/LCardView ## Basic Information - **Project Name**: LCardView - **Description**: 卡片布局,可设置阴影颜色,透明度,圆角大小,阴影宽度 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-22 - **Last Updated**: 2020-12-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 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](https://github.com/linwg1988/LCardView/blob/master/dem2.gif)