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 studio开发安卓应用设置版本号
  3. android各个版本的代号
  4. Android Studio Check for Updates检测发现不到新版本
  5. android版本与API对应关系
  6. Android Gradle Plugin与Gradle 版本对应关系
  7. Huffman编码译码器 Android版本
  8. android 版本及对应数值

随机推荐

  1. android常用框架
  2. 【Android(安卓)Developer Blog】Android
  3. Android: Linear Layout and weight
  4. Android之MotionLayout(三),用 MotionLay
  5. ToggleButton
  6. 初探Android
  7. UI组件
  8. Android(安卓)布局 LinearLayout与Relati
  9. 通过app打包修改app名称
  10. Maven Android(安卓)Plugin