如果棒棒糖之前的设备上没有标高属性,如何创建一致的材质设计UI



许多材质设计UI(如果不是全部的话)都依赖于阴影。但遗憾的是,仰角属性只出现在棒棒糖设备上。那么,如果像阴影这样简单的东西在棒棒糖之前的构建版本上不可用,如何为您的应用程序创建一个一致的UI呢?

当然,也有一些变通办法,比如创建每个布局的两个版本,使用九个补丁绘图,使用CardView等。但它们都有某些问题:

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

那么,在棒棒糖和棒棒糖之前的设备上创建材料设计UI的解决方案是什么呢?

这可能不是理想的解决方案,但对我来说,为所有Android版本使用兼容库效果很好。我有一台带安卓姜饼的Galaxy S,所以它真的很旧,当然不支持阴影和波纹。所以我写了一个库来支持我需要的所有东西。为任意形状渲染实时阴影是可能的,因为Cupcake(或Froyo-我不确定)。裂土器很容易实施。所以它是这样的:

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

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

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

使用android支持库

http://developer.android.com/tools/support-library/features.html#v4-appcompat

最新更新