1,使用QMUI_Android或MaterialShadows实现。
翻看了QMUI_Android和MaterialShadows的源码,他们阴影的实现方式都是通过调用Androdi5.xAPI:setOutlineProvider来实现。
其中MaterialShadows目前还不支持阴影颜色的变换,但是对阴影的角度支持较好。
推荐的解决方案就是把MaterialShadows的源码放到自己项目中,然后把以下代码
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
child.setOutlineAmbientShadowColor(0xffff0000);
child.setOutlineSpotShadowColor(0xffff0000);
}
copy到setOutlineProvider上面(颜色值可以抽出来自己封装),这两行代码也就是QMUI支持阴影颜色的原因。但该API只支持Android9以上。