Android Material Design:入门指南

Material Design 是 Google 推出的设计语言,旨在通过统一的视觉、交互和运动设计准则,为用户提供一致、美观和直观的体验。它首次在 2014 年的 Google I/O 开发者大会上推出,并成为 Android 应用程序设计的核心原则。以下是 Material Design 的关键特性和核心概念:


核心理念

  1. 材质隐喻
    Material Design 的核心是“数字材质”这一隐喻,模拟了真实世界中的材质。它通过阴影、光线和运动来展现层次感和深度,帮助用户直观地理解界面结构和元素的优先级。
  2. 大胆的图形设计
    采用鲜明的色彩和大面积留白,配以直观的排版和清晰的视觉层次,提升界面的可读性和视觉吸引力。
  3. 有意义的运动
    动画在 Material Design 中被用来解释状态变化、显示用户操作的结果以及提供上下文。它的运动自然、流畅,增强了用户对界面的理解。

主要组件

Material Design 提供了大量的预定义 UI 组件,方便开发者创建功能一致且美观的应用界面:

  • 按钮
    • 浮动按钮 (FAB):用于主要操作。
    • 扁平按钮和轮廓按钮:用于辅助操作。
  • 卡片 (Cards)
    用于分隔内容块,展示与某一主题相关的信息。
  • 工具栏 (Toolbar)
    包含标题、导航和操作的顶部栏组件。
  • 抽屉导航 (Navigation Drawer)
    用于在不同的应用屏幕或功能之间导航。
  • 对话框 (Dialogs)
    提供用户确认或输入信息的弹窗。
  • Snackbar 和 Toast
    提供短暂的、非阻断的用户反馈。

设计规范

Material Design 规范定义了 UI 设计的每一个细节,包括:

  1. 色彩
    • 色板:提供标准化的色彩组合。
    • 主题:包含主色、辅助色和背景色。
  2. 排版
    • 提供了一组标准字体,如 Roboto 和 Noto。
    • 层次化的标题和段落设计。
  3. 图标
    • 提供统一的图标集,适用于多种场景。
  4. 阴影与深度
    • 使用 Z 轴定义界面中的层次和深度。

开发支持

Material Design 在 Android 开发中得到了全面的技术支持:

  • Material Components for Android
    官方提供的一组开源 UI 组件库,支持快速实现 Material Design 规范。
  • 主题与样式
    Android 提供 Material Theme,开发者可以轻松配置应用的整体外观。
  • 支持库
    即使是较老版本的 Android 系统,也可以通过 Material Design 库享受设计规范。

优点

  1. 一致性
    提供统一的设计语言,让用户在跨设备、跨应用时获得一致的体验。
  2. 用户友好
    简洁的界面和直观的交互设计,让用户操作更加高效。
  3. 高效开发
    规范和组件的存在,使开发者能够快速构建高质量的 UI。

实际案例

  • Android 系统的内置应用(如 Gmail、Google Photos)遵循 Material Design 规范。
    请添加图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 广泛应用于第三方 Android 应用程序设计。

如果你正在开发 Android 应用,遵循 Material Design 规范可以显著提升用户体验和视觉一致性。


使用讲解

使用新版本的Android studio 创建的项目现在是默认支持AndroidX库&Material Design的。打开项目你会发现如下配置

1. material 库依赖

dependencies {

    implementation(libs.appcompat)
    implementation(libs.material)
    ......
}

2. style 主题使用material风格

<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->
    <style name="Base.Theme.MaterialDesign" parent="Theme.Material3.DayNight.NoActionBar">
        <!-- Customize your light theme here. -->
        <!-- <item name="colorPrimary">@color/my_light_primary</item> -->
    </style>

    <style name="Theme.MaterialDesign" parent="Base.Theme.MaterialDesign" />
</resources>

其他的Theme有如下

3. 颜色说明

Material Design 提供了详细的颜色规范,包括主色、辅助色和背景色等。以下是颜色主题配置的说明:

  • 主色 (Primary Color)
    应用的主要色调,通常用于工具栏、按钮等重要组件。

  • 辅助色 (Secondary Color)
    辅助强调的颜色,用于浮动按钮 (FAB)、切换控件等。

  • 背景色 (Background Color)
    应用的背景颜色,确保文本与背景的对比度足够高。

在项目的 res/values/colors.xml 文件中,可以找到或配置颜色:

<resources>
    <!-- 定义颜色 -->
    <color name="colorPrimary">#6200EE</color>
    <color name="colorPrimaryVariant">#3700B3</color>
    <color name="colorSecondary">#03DAC6</color>
    <color name="colorBackground">#FFFFFF</color>
    <color name="colorSurface">#FFFFFF</color>
    <color name="colorError">#B00020</color>

    <!-- 文字颜色 -->
    <color name="colorOnPrimary">#FFFFFF</color>
    <color name="colorOnSecondary">#000000</color>
    <color name="colorOnBackground">#000000</color>
    <color name="colorOnSurface">#000000</color>
    <color name="colorOnError">#FFFFFF</color>
</resources>

通过这些颜色配置,你可以调整应用的外观以符合品牌需求或用户偏好。


4. 创建一个 Material Button

Material Design 提供的组件可以直接使用,以下是创建 Material Button 的示例:

<com.google.android.material.button.MaterialButton
    android:id="@+id/materialButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Material Button"
    android:layout_margin="16dp"
    app:cornerRadius="8dp"
    android:backgroundTint="@color/colorPrimary"
    app:icon="@drawable/ic_check"
    app:iconGravity="textStart"
/>

在这里插入图片描述

属性说明:

  • app:cornerRadius:设置按钮的圆角大小。
  • android:backgroundTint:按钮背景颜色。
  • app:icon:设置按钮左侧的图标。
  • app:iconGravity:定义图标的位置(如 textStarttextEnd)。

5. 添加 Material Card

Material Design 中的卡片 (Card) 是一个常见的布局元素,用于展示内容块。

<com.google.android.material.card.MaterialCardView
    android:id="@+id/materialCard"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="16dp"
    app:cardCornerRadius="8dp"
    app:cardElevation="4dp"
    app:strokeColor="@color/colorPrimary"
    app:strokeWidth="2dp">

    <TextView
        android:id="@+id/cardContent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="This is a Material Card"
        android:layout_margin="16dp" />
</com.google.android.material.card.MaterialCardView>

在这里插入图片描述

属性说明:

  • app:cardCornerRadius:卡片圆角半径。
  • app:cardElevation:卡片的阴影高度。
  • app:strokeColor:边框颜色。
  • app:strokeWidth:边框宽度。

6. 应用 Snackbar 提示

Snackbar 是一种轻量级通知组件,用于展示短暂的消息,同时提供可操作的按钮。

示例代码:

val snackbar = Snackbar.make(findViewById(R.id.rootLayout), "This is a Snackbar", Snackbar.LENGTH_LONG)
snackbar.setAction("Undo") {
    // 按钮点击事件
    Toast.makeText(this, "Action clicked", Toast.LENGTH_SHORT).show()
}
snackbar.show()

在这里插入图片描述
原文链接:https://blog.csdn.net/konoaquada/article/details/144585978
作者:曾景昕

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值