如文档所述,您可以通过android:elevation
. 这适用于我遇到的所有元素。
但是,如果我想为我在 a 上绘制的形状获得相同(或几乎相同)的行为Canvas
怎么办?- 目前我正在玩Paint.setShadowLayer()
,但与本机实现相比,结果远非“材料”风格。
是否有任何库或方法可以达到相同的效果?最好通过添加海拔高度?
如文档所述,您可以通过android:elevation
. 这适用于我遇到的所有元素。
但是,如果我想为我在 a 上绘制的形状获得相同(或几乎相同)的行为Canvas
怎么办?- 目前我正在玩Paint.setShadowLayer()
,但与本机实现相比,结果远非“材料”风格。
是否有任何库或方法可以达到相同的效果?最好通过添加海拔高度?
Android Lollipop用于渲染阴影的方法非常简单:
您可以将此方法应用于您的形状。我已经在我的库中实现了这些步骤,能够在所有最近的 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