如果提升属性在前棒棒糖设备上不可用,则如何创建一致的Material Design UI

如果提升属性在前棒棒糖设备上不可用,则如何创建一致的Material Design UI

问题描述:

许多Material Design UI(如果不是全部都取决于阴影)。但不幸的是,提升属性只存在于棒棒糖设备上。那么,如果在棒棒糖构建版本上没有提供像阴影这样简单的事情,那么如何为您的应用程序创建一个一致的UI呢?如果提升属性在前棒棒糖设备上不可用,则如何创建一致的Material Design UI

当然也有一些解决方法,如创建每个布局的两个版本,采用九个补丁可绘制,使用CardView等,但它们都有一定的问题:

  1. 他们需要创建每个布局的两个版本,如果你不想使用棒棒糖API以及支持的设备。
  2. 很难实现具有不同形状的自定义视图。
  3. 对于每个视图都需要单独的drawable,将drawables文件夹弄乱。
  4. 阴影被视为视图本身的一部分,因此并排放置具有相同高程的视图需要使用负边距。

那么创建材料设计用户界面的解决方案是否可以在棒棒糖以及棒棒糖设备上运行?

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

  1. 一个版本每个布局
  2. 的支持任意形状
  3. 没有额外的可绘制
  4. 阴影被画的布局,而不是阴影投射。

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

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

+2

的据我所知支持库不提供高程属性。在本例中, – Suyash 2015-02-11 15:08:57

+0

高程正常工作。支持api级别在7以上。http://www.101apps.co.za/index.php/articles/android-s-recyclerview-and-cardview-widgets.html – Fahim 2015-02-14 03:11:05

+0

CardView标高不同于普通标高。仔细阅读我的问题。我已经列出了使用CardView进行标高的问题(第2和第4点)。 – Suyash 2015-02-14 08:14:18