27

我们正在重新设计我们的 android 应用程序,考虑到即将推出的具有材料风格的 Android L 平台,一个问题出现了:支持旧设备的方式是什么?这种新设计在 4.x 设备上是否可以接受?

4

3 回答 3

23

根据Android Material Design 兼容性文档

我将在这里重新整理材料,以防链接被删除,这很可能会在不久的将来。

对于 Material 主题

Material 主题仅在 Android L Developer Preview 中可用。要将您的应用配置为在运行 Android L Developer Preview 的设备上使用材料主题,并在运行早期 Android 版本的设备上使用旧主题:

在 res/values/styles.xml 中定义一个继承自旧主题(如 Holo)的主题。在 res/values-v21/styles.xml 中定义一个继承自材质主题的同名主题。在清单文件中将此主题设置为您应用的主题。

至于布局

如果您根据材料设计指南设计的布局不使用 Android L Developer Preview 中的任何新 XML 属性,它们将适用于早期版本的 Android。否则,您可以提供替代布局。您还可以提供替代布局来自定义您的应用在早期版本的 Android 上的外观。

在 res/layout-v21/ 中为 Android L Developer Preview 创建布局文件,并在 res/layout/ 中为早期版本的 Android 创建替代布局文件。替代布局具有相同的文件名。

为避免代码重复,请在 res/values/ 中定义您的样式,并在 res/values-v21/ 中修改新 API 的样式。

对于 UI 小部件

RecyclerView 和 CardView 小部件包含在 Android L 开发者预览支持库中,因此它们在早期版本的 Android 中可用,但存在以下限制:

CardView 回退到使用额外填充的程序化阴影实现。CardView 不会裁剪与圆角相交的子视图。这些限制不适用于 Android L Developer Preview。

最后是动画

以下新 API 仅在 Android L 开发者预览版中可用:

活动过渡、触摸反馈、显示动画、基于路径的动画。为了保持与早期 Android 版本的兼容性,请在调用这些 API 之前在运行时检查系统版本。

于 2014-06-28T04:41:20.897 回答
2

v7 支持库 r21 及更高版本包括以下材料设计功能:

  • 当您应用 Theme.AppCompat 主题之一时,某些系统小部件的材料设计样式。

  • Theme.AppCompat 主题中的调色板主题属性。

  • 用于显示数据集合的 RecyclerView 小部件。
  • 用于创建卡片的 CardView 小部件。调色板类从图像中提取突出的颜色。

以下功能仅在 Android 5.0(API 级别 21)及更高版本中可用:

  • 活动转换

  • 触控反馈

  • 显示动画

  • 基于路径的动画

  • 矢量绘图

  • 可绘制着色

因此,您可以使用一些可用于触摸反馈的第三方库。并且可以使用自定义的activity过渡动画。我已经完成了自定义活动过渡动画。您可以在此链接上找到我的应用程序 。您可以在自定义活动转换中找到 devebyte 的 youtube 视频。

于 2015-01-23T11:22:23.310 回答
0

支持库包括许多使用新材料设计的组件,特别是自设计支持库发布以来。使用Theme.AppCompat(和类似的)作为第一步,您将上路。build.gradle 中包含的部分是:

compile 'com.android.support:support-v13:{{VERSION}}'
compile 'com.android.support:cardview-v7:{{VERSION}}'
compile 'com.android.support:recyclerview-v7:{{VERSION}}'
compile 'com.android.support:design:{{VERSION}}'

对于版本22.2.0或更高版本。

另请查看AppCompat v21 — 棒棒糖前设备的材料设计Android 设计支持库

于 2015-06-02T12:17:31.607 回答