适用于 Android 的 Material Design

尝试 Compose 方法
Jetpack Compose 是 Android 推荐的 UI 工具包。了解如何在 Compose 中使用主题。

Material Design 是一个全面的指南,用于跨平台和设备的视觉、动效和交互设计。要在您的 Android 应用中使用 Material Design,请遵循Material Design 规范中定义的指南。如果您的应用使用 Jetpack Compose,您可以使用Compose Material 3 库。如果您的应用使用视图,您可以使用Android Material Components 库。

Android 提供以下功能来帮助您构建 Material Design 应用

  • Material Design 应用主题,用于为所有 UI 小部件设置样式
  • 用于复杂视图(如列表和卡片)的小部件
  • 用于自定义阴影和动画的 API

Material 主题和小部件

要利用 Material 功能(例如标准 UI 小部件的样式)并简化应用的样式定义,请将基于 Material 的主题应用于您的应用。

图 1. 深色 Material 主题。
图 2. 浅色 Material 主题。

如果您使用 Android Studio 创建 Android 项目,则默认情况下会应用 Material 主题。要了解如何更新项目的主题,请参阅样式和主题

为了向您的用户提供熟悉的体验,请使用 Material 最常见的 UX 模式

在可能的情况下,使用预定义的 Material 图标。例如,对于导航抽屉的导航“菜单”按钮,请使用标准的“汉堡包”图标。请参阅Material Design 图标以获取可用图标的列表。您还可以使用 Android Studio 的矢量资源工作室从 Material 图标库导入 SVG 图标。

海拔阴影和卡片

除了XY 属性之外,Android 中的视图还有一个Z 属性。此属性表示视图的海拔高度,它决定以下内容

  • 其阴影的大小:Z 值较高的视图投射更大的阴影。
  • 绘图顺序:Z 值较高的视图显示在其他视图的顶部。
图 3. 表示海拔高度的Z 值。

您可以将海拔高度应用于基于卡片的布局,这有助于您在提供 Material 外观的卡片内显示重要信息。您可以使用CardView 小部件创建具有默认海拔高度的卡片。有关更多信息,请参阅创建基于卡片的布局

有关将海拔高度添加到其他视图的信息,请参阅创建阴影和剪辑视图

动画

图 4. 触控反馈动画。

动画 API 允许您为 UI 控件中的触控反馈、视图状态更改和活动过渡创建自定义动画。

这些 API 允许您

  • 使用触控反馈动画响应视图中的触控事件。
  • 使用圆形显示动画隐藏和显示视图。
  • 使用自定义活动过渡动画在活动之间切换。
  • 使用曲线运动创建更自然的动画。
  • 使用视图状态更改动画为一个或多个视图属性设置动画。
  • 在视图状态更改之间使用状态列表可绘制对象显示动画。

触控反馈动画内置于多个标准视图中,例如按钮。动画 API 允许您自定义这些动画并将它们添加到您的自定义视图中。

有关更多信息,请参阅动画简介

可绘制对象

这些可绘制对象的功能有助于您实施 Material Design 应用

  • 矢量可绘制对象可以在不丢失清晰度的情况下进行缩放,非常适合单色应用内图标。详细了解矢量可绘制对象
  • 可绘制对象着色允许您将位图定义为 alpha 遮罩,并在运行时使用颜色对其进行着色。了解如何向可绘制对象添加着色
  • 颜色提取允许您自动从位图图像中提取突出颜色。了解如何使用 Palette API 选择颜色