Android材料设计

Android Material Design

Android倡导UI设计

前言

2014年的Google I/O大会上隆重发布了Android 5.0,从Android 4.4直接跃升到Android 5.0,可见更新升级的内容很多,当然,这已经过去很久了,就不再罗嗦了。虽然Android 5.0发布已经很长时间了,但是Android 5.0有一个更新,是深深影响Android 5.0之后的版本,也是时间的推移,Android 5.0更新的这些功能就越显得重要。那就是Android的材料设计,为什么说时间推移,Android材料设计越显得重要呢?因为Android材料设计是不兼容Android 5.0之前的版本,所以很多APP开发,也会不重视材料设计的指导和精神,而导致Android APP的体验一致得不到Android所期望的统一风格,出色的用户体验。

由于Android 5.0之前的版本逐渐地推出Android的市场份额,所以,对于APP开发,应该尽可能的使用Android倡导的材料设计,以便获取到更好地用户体验。就目前Android的APP开发者很多,水平相差也很大,当然,本文作者的水平也是很糟糕,也由于Android之前也一直不太重视UI的美观设计,导致很多Android的APP的风格受到不少的吐槽。材料设计,可以让没有美术支持的APP开发者也能方便快捷地开发出漂亮的Android APP。

本文对Android的材料设计进行一下概述,对如何好好利用材料设计开发一款漂亮的Android APP,在本文之后将会渐渐呈现。好了,废话不多说,进入正题吧。

什么是材料设计

用良好的设计与创新,科学与技术,专为设计适用于多个平台和设备的视觉、运动与互动效果而制定的综合指南。利用Android Material Design开发APP,有下列元素可以利用:

  • 材料主题
  • 用于创建卡片与列表的小组件
  • 定制阴影以及视图裁剪
  • 矢量图片
  • 定制动画

保持兼容性

由于Android材料设计是Android 5.0(API 21)才推出的一套API,那么很多材料设计相关的东西,在Android 5.0之前的老版本是无法使用的,但是,目前开发一款APP,有不能完全脱离之前的老版本,因此,在利用Android材料设计创建APP的时候,还需要考虑兼容老版本的问题。可能需要做以下准备(以下小章节内容摘自官方维护兼容性):

定义备用样式

您可对您的应用进行配置,使应用能够在支持它的设备上使用材料主题,并且能够在运行早期版本 Android 的设备上还原至早期版本的主题:

  1. 定义一个从 res/values/styles.xml 中的早期版本主题(例如 Holo)继承的主题。
  2. 定义一个从 res/values-v21/styles.xml 中的材料主题继承且拥有相同名称的主题。
  3. 在清单文件中将此主题设置为您的应用主题。

注意:如果您的应用使用材料主题,但没有以这方式提供备用主题,您的应用将无法在 Android 5.0 之前的 Android 版本上运行。

提供备用布局

如果您根据 Material Design 指导方针设计的布局没有使用 Android 5.0(API 级别 21)所推出的新 XML 属性,这些布局将能够在早期版本的 Android 上运行。 或者,您也可以提供备用布局。您也可以提供备用布局以定制应用在早期版本的 Android 上的呈现方式。

您可在 res/layout-v21/ 内创建用于 Android 5.0(API 级别 21)的布局文件,同时也可在 res/layout/ 内创建用于早期版本 Android 的备用布局文件。例如,res/layout/my_activity.xml 是 res/layout-v21/my_activity.xml 的备用布局。

为避免代码重复,请在 res/values/ 内定义您的风格,在 res/values-v21/ 内为新 API 修改风格,以及使用风格继承(即:在 res/values/ 内定义基础风格,然后在 res/values-v21/ 内继承这些风格)。

使用支持内容库

v7 支持内容库 r21 及更高版本包括下列 Material Design 功能:

  • 应用其中一个 Theme.AppCompat 主题时可取得适用于一些系统小组件的Material Design 风格。
  • Theme.AppCompat 主题中拥有配色工具主题属性。
  • 显示数据集合的 RecyclerView 小组件。
  • 创建卡片的 CardView 小组件。
  • 从图像萃取突出颜色的 Palette 类别。

系统小组件

Theme.AppCompat 主题可为这些小组件提供 Material Design 风格:

  • EditText
  • Spinner
  • CheckBox
  • RadioButton
  • SwitchCompat
  • CheckedTextView

配色工具

如果要利用 Android v7 支持内容库取得 Material Design 风格以及定制配色工具,请应用其中一个 Theme.AppCompat 主题:

<style name="Theme.MyTheme" parent="Theme.AppCompat.Light">    -- customize the color palette -->    <item name="colorPrimary">@color/material_blue_500    "colorPrimaryDark">@color/material_blue_700    "colorAccent">@color/material_green_A200style>

列表和卡片

RecyclerView 以及 CardView 小组件可通过 Android v7 支持内容库提供给早期版本 Android,但有如下限制:

  • CardView 使用额外边距返回编程阴影实现。
  • CardView 不会裁剪其与圆角相交的子视图。

依赖项

如果要在 Android 5.0(API 级别 21)之前的 Android 版本中使用这些功能,请将 Android v7 支持内容库作为 Gradle 依赖项包括在您的项目中:

dependencies {    compile 'com.android.support:appcompat-v7:21.0.+'    compile 'com.android.support:cardview-v7:21.0.+'    compile 'com.android.support:recyclerview-v7:21.0.+'}

检查系统版本

下列功能仅在 Android 5.0(API 级别 21)及更高版本中提供:

  • 操作行为转换
  • 触摸反馈
  • 揭露动画
  • 基于路径的动画
  • 矢量图片
  • 图片着色

如果要保留与早期版本 Android 的兼容性,请您在运行时检查系统 version,然后再为下列的任何一个功能调用 API:

// Check if we're running on Android 5.0 or higherif (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {    // Call some material design APIs here} else {    // Implement this feature without material design}

注意:如果要指定您的应用所支持的 Android 版本,请使用您的清单文件中的 android:minSdkVersion 以及 android:targetSdkVersion 属性。 如果要在 Android 5.0 内使用 Material Design 功能,请将 android:targetSdkVersion 属性设置为 21。 如果要了解更多信息,请参阅 API 指南。

总结

了解了Android的材料设计,也知道了兼容性的问题,就可以用材料设计的指导方针,开发一款漂亮的APP啦。

更多相关文章

  1. Android常见错误处理
  2. 如何判断Android系统的版本
  3. android 软件更新代码
  4. Android(安卓)Support Library
  5. Android(安卓)1.5 SDK, Release 1 翻译完后全国发布
  6. Android开发包下载
  7. Android中UI设计的一些技巧!!!
  8. versionCode与versionName的区别、应用、获取
  9. android studio开发安卓应用设置版本号

随机推荐

  1. 解析Android消息处理机制 ——Handler/Th
  2. Android(安卓)获取界面上的元素
  3. Android(安卓)ImageView图片自适应
  4. eclipse android集成开发环境分享 32位 6
  5. Android示例大全教学视频
  6. Android应用的LinearLayout中嵌套Relativ
  7. Android(安卓)Adapter
  8. android文件操作OpenFileInput OpenFileO
  9. Android中minSdkVersion、targetSdkVersi
  10. Android中attr自定义属性详解