支持Android Material设计

27

我们正在重新设计我们的安卓应用程序,考虑到即将发布的 Android L 平台及其材料设计,一个问题浮现:如何支持旧设备?这个新设计是否适用于 4.x 设备?


5
或许现在问这样的问题还为时过早。 - Egor
2
稍后的26日将会有适用于Android L的SDK发布。你会有时间去了解。不管怎样,我感觉会有一个10万次访问的问题。 - Sergi Juanola
google.com/design 上已经有关于Material Design的一些信息。/编辑:对于Web,已经在Polymer中实现-> polymer-project.org - Björn Ternes
3个回答

23
根据Android Material Design兼容性文档
为了使用Material主题,您需要在res/values/styles.xml中定义一个从旧主题(如Holo)继承的主题,并在res/values-v21/styles.xml中定义一个同名的从material主题继承的主题。然后在manifest文件中将这个主题设置为应用程序的主题。
如果按照Material设计指南设计的布局不使用来自Android L Developer Preview的任何新XML属性,则这些布局将适用于早期版本的Android。否则,您可以提供替代布局。可以在res/layout-v21/内创建Android L Developer Preview的布局文件,并在res/layout/内创建早期版本的Android的替代布局文件。替代布局具有相同的文件名。为了避免重复代码,请在res/values/内定义样式,并在res/values-v21/内修改样式以适应新API。RecyclerView和CardView小部件包含在Android L Developer Preview支持库中,因此它们可用于早期版本的Android。CardView会以编程方式实现阴影并使用额外的padding。CardView不会剪裁与圆角相交的子视图。这些限制不适用于Android L Developer Preview。最后,在动画方面,您可以使用AnimatedVectorDrawable类创建描边动画,而不是使用AnimationDrawable类。以下新的 API 仅在 Android L 开发者预览版中提供:
活动转换、触摸反馈、展示动画、基于路径的动画。为了保持与早期版本的 Android 兼容性,在调用这些 API 之前请在运行时检查系统版本。

2

v7 Support Libraries r21及以上版本包括以下Material Design功能:

  • 应用Theme.AppCompat主题之一时,某些系统小部件的Material Design样式。

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

  • RecyclerView小部件以显示数据集合。
  • CardView小部件以创建卡片。Palette类可从图像中提取突出颜色。

以下功能仅适用于Android 5.0(API级别21)及以上版本:

  • 活动转换

  • 触摸反馈

  • 揭示动画

  • 基于路径的动画

  • 矢量可绘制对象

  • 可绘制对象着色

因此,您可以使用一些第三方库来实现触摸反馈,并使用自定义活动转换动画。我已经完成了自定义活动转换动画。您可以在此链接上找到我的应用程序。您可以在Devebyte的YouTube视频中找到有关自定义活动转换的内容。


0

支持库包含许多使用新的材料设计的组件,特别是自Design Support库发布以来。使用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 — 预-Lollipop 设备的材料设计Android 设计支持库


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接