其他分享
首页 > 其他分享> > android-如何将材质样式的阴影添加到画布绘制的元素?

android-如何将材质样式的阴影添加到画布绘制的元素?

作者:互联网

如文档所述,您可以通过android:elevation添加和自定义材质设计的阴影样式.这与我遇到的所有元素都很好.

但是,如果我想在画布上绘制的形状获得相同(或几乎相同)的行为怎么办? -目前,我正在使用Paint.setShadowLayer(),但与本机实现相比,结果远非’material’风格.

是否有任何库或方法可以达到相同的效果?最好加上海拔高度?

解决方法:

Android Lollipop用于渲染阴影的方法非常简单:

>绘制视图的黑色形状
>使用ScriptIntrisincBlur对其进行模糊处理
>将其绘制在视图下方

您可以将此方法应用于形状.我已经在自己的库中实现了这些步骤,能够在所有最近的Android上绘制实时阴影,直到纸杯蛋糕.您可以在这里找到它:https://github.com/ZieIony/Carbon/blob/master/carbon/src/main/java/carbon/widget/FrameLayout.java#L207

编辑:链接到Android阴影绘图代码:
https://github.com/android/platform_frameworks_base/blob/4d9ffdf95237c4ee59514c678fea6ff157e0eee3/libs/hwui/OpenGLRenderer.cpp#L2507

标签:material-design,canvas,shadow,android-elevation,android
来源: https://codeday.me/bug/20191120/2046191.html