一、先来看下效果图

二、解决的场景
1、UI经常设计一些不是黑色的Shadow阴影,仅仅通过elevation是无法满足需求的,Android 原装Shadow颜色在Android 9及以上才可通过outlineSpotShadowColor进行设置,设置颜色有版本限制
2、即便是通过outlineSpotShadowColor来设置,四个边的宽度无法自由调整
三、实现思路与原理
1、阴影可以通过渐变色来实现,在布局上绘制渐变线条即可实现阴影
2、首先绘制四个边通过给Paint设置shader来实现,LinearGradient是成线性渲染,所以使用它最为简单,以下以底边为例展示
//绘制底部阴影
float[] ptsBottom = new float[4];
ptsBottom[0] = shadowMaxLength / 2f + shadowRadius;
ptsBottom[1] = height - shadowMaxLength / 2f;
ptsBottom[2] = width - shadowMaxLength / 2f - shadowRadius;
ptsBottom[3] = height - shadowMaxLength / 2f;
LinearGradient linearGr

本文介绍了一种通过绘制渐变色实现自定义阴影效果的方法。利用LinearGradient和RadialGradient分别处理边框和角落,实现不同颜色及宽度的阴影效果。通过调整Padding值,可以灵活改变阴影的显示范围。

5022

被折叠的 条评论
为什么被折叠?



