- 支持定制化阴影
- 支持随意更改阴影颜色值
- 支持x,y轴阴影偏移
- 可随意更改阴影扩散区域
- 支持阴影圆角属性
- 支持单边或多边不显示阴影
- 支持ShadowLayout背景填充颜色,圆角属性随阴影圆角改变
- 支持动态修改ShadowLayout各种属性,及内部代码优化
基础功能展示 | 各属性展示 | 随意更改颜色 |
---|---|---|
- 项目build.gradle添加如下
allprojects { repositories { maven { url 'https://jitpack.io' } } }
- app build.gradle添加如下
dependencies { implementation 'com.github.lihangleo2:ShadowLayout:2.0.1' }
<com.lihang.ShadowLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:hl_cornerRadius="18dp"
app:hl_dx="0dp"
app:hl_dy="0dp"
app:hl_leftShow="false"
app:hl_shadowColor="#2aff0000"
app:hl_shadowBackColor="#fff"
app:hl_shadowLimit="5dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="36dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="定制化你的阴影"
android:textColor="#000" />
</com.lihang.ShadowLayout>
- app:hl_cornerRadius="18dp" 阴影圆角属性(同时如果设置了背景填充色也是背景圆角)
- app:hl_shadowLimit="5dp" 阴影的扩散区域
- app:hl_shadowBackColor="#fff" 阴影布局背景填充色,圆角属性即是阴影圆角
- app:hl_shadowColor="#2a000000" 阴影的颜色可以随便改变,透明度的改变可以改变阴影的清晰程度
//这里是setShadowLayer源码的描述,去掉了部分代码便于理解
/*
* The alpha of the shadow will be the paint's alpha if the shadow color is
* opaque, or the alpha from the shadow color if not.
*/
public void setShadowLayer(float radius, float dx, float dy, int shadowColor) {
mShadowLayerRadius = radius;
mShadowLayerDx = dx;
mShadowLayerDy = dy;
mShadowLayerColor = shadowColor;
nSetShadowLayer(mNativePaint, radius, dx, dy, shadowColor);
}
- app:hl_dx="0dp" 也可以理解为左右偏移量
- app:hl_dy="0dp" 也可以理解为上下的偏移量
- app:hl_leftShow="false" 左边的阴影不可见,其他3边保持不变