首先来看一下我写的这个库的效果图

如果用cardView 来实现这个阴影你觉得能实现吗? 当然不能, 因为cardView不支持自定义阴影颜色, 而我写的这个库就能实现这个效果。
优势
-
能自定义阴影的颜色值, 而cardView不可以
-
可以自定义圆角
-
可以控制上下左右的某一边是否需要圆角。 而cardView不可以
总而言之, 能用cardView实现的功能 这个库都能实现。 反之能用这个库能实现自定义阴影, 是否需要圆角, 而cardView实现不了。
添加依赖
在根目录的build.gradle 引入maven
maven { url 'https://dl.bintray.com/richzjc/maven' }
在module的 dependencies下面添加
implementation 'com.richzjc:ShadowLib:1.0.15
备注
当前控件只能包裹一个子控件
自定义属性介绍
- hl_topShow: 是否显示上阴影
- hl_bottomShow: 是否显示下阴影
- hl_leftShow: 是否显示左阴影
- hl_rightShow: 是否显示右阴影
- hl_shadowRadius: 阴影的宽度
- hl_cardCornorRadius: 圆角
- hl_shadowColor: 阴影的颜色值
- hl_shadowSolidColor: 基本上用不到
<attr name="hl_topShow" format="boolean" />
<attr name="hl_bottomShow" format="boolean" />
<attr name="hl_leftShow" format="boolean" />
<attr name="hl_rightShow" format="boolean" />
<attr name="hl_shadowRadius" format="dimension"/>
<attr name="hl_cardCornerRadius" format="dimension"/>
<attr name="hl_shadowColor" format="color|reference"/>
<attr name="hl_shadowSolidColor" format="color|reference"/>
示例代码
android:layout_width="wrap_content"
android:layout_height="200dp"
android:background="#000"
android:paddingLeft="10dp"
app:hl_shadowRadius="30dp"
app:hl_cardCornerRadius="10dp"
app:hl_shadowSolidColor="#123456"
app:hl_bottomShow="true"
app:hl_topShow="true"
app:hl_rightShow="true">
<TextView
android:layout_width="100dp"
android:layout_height="100dp"
android:background="#f00" />
</com.richzjc.shadowlib.MyShadowLayout>