我们正在重新设计我们的Android应用程序,并且考虑到即将推出的具有其材质风格的Android L平台,问题也在增加:支持旧设备的方式是什么?这个新设计在4.x设备上是否可以接受?
答案 0 :(得分:23)
根据Android Material Design compatibility docs
如果链接被取消,我将在这里重新发布材料,这很可能是在不久的将来。
对于材质主题
材质主题仅适用于Android L Developer 预习。配置应用以在设备上使用素材主题 在设备上运行Android L开发人员预览版和较旧的主题 运行早期版本的Android:
定义一个继承自旧主题(如Holo)的主题 RES /值/ styles.xml。定义具有相同名称的主题 来自res / values-v21 / styles.xml中的材质主题。设置这个主题 作为应用程序在清单文件中的主题。
至于布局
如果您根据材料设计设计布局 准则不使用Android L中的任何新XML属性 开发人员预览版,他们将在以前版本的Android上工作。 否则,您可以提供替代布局。你也可以提供 替代布局,以自定义您的应用之前的外观 Android版本。
在里面为Android L Developer Preview创建布局文件 res / layout-v21 /和早期版本的替代布局文件 在res / layout /中的Android。替代布局具有相同的文件 名。
为避免重复代码,请在res / values /中定义样式 并修改res / values-v21 /中的样式以用于新API。
用于UI小部件
RecyclerView和CardView小部件包含在Android L中 开发人员预览支持库,因此可以在之前使用 具有以下限制的Android版本:
CardView回归到使用的程序化阴影实现 额外的填充。 CardView不会剪切其子视图 与圆角相交。这些限制不适用于 Android L开发者预览。
最后是动画
以下新API仅适用于Android L Developer 预览:
活动转换,触摸反馈,显示动画,基于路径 动画。为了保持与Android早期版本的兼容性, 在调用这些API之前,请在运行时检查系统版本。
答案 1 :(得分:2)
v7支持库r21及更高版本包括以下材料设计功能:
应用其中一个系统小部件时的材质设计样式 Theme.AppCompat主题。
Theme.AppCompat主题中的调色板主题属性。
以下功能仅适用于Android 5.0(API级别21)及以上版本:
活动转换
触摸反馈
显示动画
基于路径的动画
Vector drawables
Drawable Tinting
因此,您可以使用一些可用于Touch反馈的第三方库。并且可以使用自定义活动过渡动画。我已经完成了自定义活动过渡动画。你可以在link上找到我的应用 。你可以在自定义活动转换中找到有关devebyte的youtube视频。
答案 2 :(得分: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 — Material Design for Pre-Lollipop Devices和Android Design Support Library。