如果在棒棒糖之前的设备上没有立面属性,如何创建一致的Material Design UIs?

问题描述 投票:2回答:2

许多Material Design UIs如果不是全部都依赖于落影。但遗憾的是,仰角属性只存在于棒棒糖设备上。那么,如果像drop shadows这样简单的东西在棒棒糖之前的构建版本上是不可用的,如何为你的应用创建一个统一的UI呢?

当然也有一些变通的方法,比如为每个布局创建两个版本,使用九个补丁可绘制,使用CardView等。但它们都存在一定的问题。

  1. 如果你不想在支持的设备上使用棒棒糖API,那么它们需要为每个布局创建两个版本。
  2. 很难实现不同形状的自定义视图。
  3. 需要为每个视图创建单独的可绘制文件,使可绘制文件的文件夹混乱不堪。
  4. 阴影被认为是视图本身的一部分,所以并排放置的具有相同立面的视图需要使用负边距。

那么有什么办法可以创建既能在棒棒糖又能在棒棒糖之前的设备上使用的Material Design UIs呢?

android material-design shadow
2个回答
1
投票

这可能不是理想的解决方案,但对我来说,使用所有Android版本的兼容性库工作得很好。我拥有一个Android Gingerbread的Galaxy S,所以它真的很老,当然不支持阴影和涟漪。所以我写了一个库,把我需要的东西都回传了。从Cupcake(或Froyo--我不确定)开始,就可以为任意形状渲染实时阴影了。涟漪是非常容易实现的。所以它是这样的。

  1. 每个布局的一个版本
  2. 支持任何形状
  3. 没有额外的可提取物品
  4. 阴影是由布局绘制的,而不是由阴影投射器绘制的。

其中一个问题是,没有那个新的渲染线程,所以例如当一个Activity改变时,波纹动画会滞后。

如果你想了解更多关于我的方法,请查看我的博客和github。https:/androidreclib.wordpress.com https:/github.comZieIonyCarbon。


© www.soinside.com 2019 - 2024. All rights reserved.