我在材料设计方面工作,我面临着我无法解决的问题。是关于阴影/海拔的。
https://developer.android.com/training/material/shadows-clipping.html#Shadows
但我们只能在棒棒糖和更高的地方使用这些特性。那之前的棒棒糖设备呢?如果我想要创建一个应用程序,可以在前棒棒糖设备上使用,那么我就不能使用,例如
android:elevation="2dp“
我说的对吗?
例如,设计师给我的psd与一些设计。想象一下它看起来像这样

正如您所看到的,面板的上限是448 As。我们可以很容易地使用Photoshop获得这个保证金值。
但是当我提取这个带有阴影的面板时,我发现阴影本身在面板的顶部取了10 px。

448‘t的最高边距不包括阴影。
显然,我不能将panel.png放在我的some_layout.xml上,并将边距设置为448 on (298.67dp),因为这个绘图包含阴影。看来,我应该考虑阴影长度,并且应该从顶部边缘减去这个长度(448-10=438 It =292 It)。
这个推理正确吗?我简直不敢相信。这条路似乎太复杂了。也许还有更有效的做法?
发布于 2015-12-11 18:35:12
shadow in Lollipop
对于Android5.0和更高版本: AppBarLayout自动在布局中提供/提供阴影。您还可以通过AppBarLayout“4dp”来提高android:elevation=的高度。 对于预Lollipop:可以使用以下链接:http://blog.grafixartist.com/add-a-toolbar-elevation-on-pre-lollipop/ 注意:工具栏还支持对它的提升,使用android:elevation="4dp“
阅读更多:Add elevation/shadow on toolbar for pre-lollipop devices
elevation in Lollipop
你不能用官方的方法来模仿前棒棒糖的高度。 您可以使用一些绘图在组件中创建阴影。例如,谷歌在CardView中就采用了这种方式。
ViewCompat.setElevation(View, int)当前只在API21+上创建阴影。如果检查后面的代码,此方法将调用: API 21+: @覆盖公共空setElevation(视图视图,浮点高程){ViewCompatLollipop.setElevation(视图,高程);} API < 21 @覆盖公共空setElevation(查看视图,浮动高程){}
阅读更多:How to implement the Material-design Elevation for Pre-lollipop
编辑: As @geek90 90也建议访问这个回购:http://github.com/navasmdc/MaterialDesignLibrary
发布于 2015-12-13 09:06:11
我也很沮丧。我不喜欢用渐变做阴影。我深入研究了文档,发现了Lollipop的实现是如何实现的,并从零开始为旧设备编写了代码。
我的实现叫做碳。这是一个支持动态自动阴影的材料设计实现。不需要添加任何类型的边缘或梯度-只需指定一个视图的高度和获得阴影的所有SDK。
https://github.com/ZieIony/Carbon
在这里阅读更多关于该方法的信息:How to implement the Material-design Elevation for Pre-lollipop
https://stackoverflow.com/questions/34229902
复制相似问题