探索 Material 3:全新设计系统和组件库的介绍
- [一、Material 3 简介](#一、Material 3 简介)
-
- [1.1 Material 3 的改进和更新](#1.1 Material 3 的改进和更新)
- [1.2 Material 3 的优势特点](#1.2 Material 3 的优势特点)
- [二、Material 3 主题使用](#二、Material 3 主题使用)
-
- [2.1 使用 Material3 主题](#2.1 使用 Material3 主题)
- [2.2 使用 Material3 主题颜色](#2.2 使用 Material3 主题颜色)
- [三、Material 3 组件使用](#三、Material 3 组件使用)
-
- [3.1 MaterialButton:支持个性化主题颜色的按钮](#3.1 MaterialButton:支持个性化主题颜色的按钮)
- [3.2 NavigationRail:导航栏](#3.2 NavigationRail:导航栏)
- [3.3 SearchBar:搜索栏](#3.3 SearchBar:搜索栏)
- [3.4 TabBar:标签栏](#3.4 TabBar:标签栏)
- 四、总结
一、Material 3 简介
Material 3 是 Google 推出的 Android 设计语言的最新演进,为开发者提供了一套更为先进和丰富的设计组件。Material 3 不仅仅是设计的变革,更是用户体验的全新定义。它突破了传统设计的边界,引入了更加现代化和灵活的组件,以适应不断演变的应用需求,Material 3 将引领 Android 设计新潮流。
- 官网:https://m3.material.io/
- Github:https://github.com/material-components/material-components-android/
1.1 Material 3 的改进和更新
🌟 色彩系统:Material 3 的色彩系统基于 Material You 的色彩系统,但提供了更多的颜色选择。Material 3 的色彩系统包括以下几种颜色:
- 基础色:基础色是 Material 3 的核心色彩,包括:Primary(主要色)、Secondary(次要色)、Tertiary(第三色)、Neutral(中性色)。
- 补充色:补充色用于与基础色搭配,包括:Accent(强调色)、Contrast(对比色)。
- 过渡色:过渡色用于连接基础色和补充色,包括:Transition 1(过渡色 1)、Transition 2(过渡色 2)。
🌟 字体系统:Material 3 的字体系统基于 Material You 的字体系统,但提供了新的字体选择。Material 3 的字体系统包括以下几种字体:
- Roboto:Material 3 的默认字体,是一种无衬线字体。
- Noto Serif:一种衬线字体,用于标题和副标题。
- Noto Sans:一种无衬线字体,用于正文。
🌟 组件:Material 3 新增了一些新的组件,这些组件可以帮助开发者构建更加现代、美观的应用程序。
- Typography:Typography 组件用于控制文本的样式和大小。Typography 组件可以设置文本的字体、字号、字重、行高等属性。
- Surface:Surface 组件用于控制背景的颜色和阴影。Surface 组件可以设置背景的颜色、透明度、阴影等属性。
- Elevation:Elevation 组件用于控制阴影的高度。Elevation 组件可以设置阴影的高度、颜色等属性。
🌟 动画:Material 3 的动画更加流畅和自然。Material 3 使用了新的动画 API,可以让开发者更轻松地创建动画。
1.2 Material 3 的优势特点
🚀 全新设计语言
Material 3 引入了一种名为 "Material You" 的个性化设计语言。它允许用户根据自己的喜好和风格自定义应用程序的外观和感觉。通过 Material You,开发人员可以利用系统级的颜色、字体和形状,为用户提供个性化的界面体验。
🚀 新的组件库
Material 3 带来了一系列全新的组件,旨在提供更好的可访问性、更高的自定义性和更好的性能。以下是一些常用的组件:
-
AppBar:用于创建应用程序的顶部导航栏,可以包含标题、操作按钮和导航菜单等元素。
-
Button:提供各种样式和交互方式的按钮,包括文本按钮、图标按钮和浮动操作按钮等。
-
Card:用于呈现信息的卡片式容器,可以包含标题、图像和操作按钮等。
-
Dialog:用于在应用程序中显示模态对话框,可用于提醒、确认和输入等场景。
-
Snackbar:用于在屏幕底部显示临时消息或操作结果的轻量级提示框。
-
TextField:提供文本输入框的组件,支持单行和多行输入,以及验证和自动完成等功能。
-
TabBar:用于在页面或应用程序中切换内容的选项卡导航栏。
🚀 自定义主题
Material 3 提供了强大的主题定制功能,开发人员可以根据项目需求自定义应用程序的颜色、字体、形状和其他视觉样式。通过定义主题,可以确保应用程序与品牌标识和用户期望保持一致。
🚀 可访问性支持
Material 3 重视可访问性,提供了一系列工具和指南,帮助开发人员构建无障碍的应用程序。组件库中的每个组件都经过了可访问性测试和优化,以确保所有用户都能够轻松使用应用程序。
二、Material 3 主题使用
Material 3 引入了全新的主题引擎,使开发者能够更灵活地定制应用的外观和交互方式。Material 3 的色彩系统基于色调、明度和饱和度三个属性。色调是颜色的基调,明度是颜色的亮度,饱和度是颜色的纯度。Material 3 的色彩系统使用了一种称为 色调提取 的方法来生成应用程序的色彩。色调提取方法会从用户的壁纸中提取出一种主色调,然后生成应用程序的其他色彩。
通过以下步骤,你可以开始使用 Material 3 的主题引擎:
2.1 使用 Material3 主题
在 res/values/styles.xml
中使用 Theme.Material3
:
xml
<resources>
<!-- Base application theme -->
<style name="AppTheme" parent="Theme.Material3">
<!-- Customize your theme here -->
</style>
</resources>
2.2 使用 Material3 主题颜色
在布局文件中使用主题颜色:
xml
<TextView
android:id="@+id/myTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, Material 3!"
android:background="?attr/colorSurface" />
在 Java 代码中获取主题颜色:
java
// 获取主题颜色
int colorSurface = getColorFromAttribute(R.attr.colorSurface);
// 设置 TextView 背景颜色
TextView myTextView = findViewById(R.id.myTextView);
myTextView.setBackgroundColor(colorSurface);
java
// 辅助方法,用于从主题属性获取颜色
private int getColorFromAttribute(int attr) {
TypedValue typedValue = new TypedValue();
getTheme().resolveAttribute(attr, typedValue, true);
return typedValue.data;
}
三、Material 3 组件使用
组件是用于创建用户界面的交互式构建块。它们可以根据其用途分为几类:操作、遏制、通信、导航、选择和文本输入。Material 3 引入了一系列先进的组件,让开发者能够更容易地构建现代化、富有创意的应用。
以下是一些 Material 3 组件的介绍和使用示例:
3.1 MaterialButton:支持个性化主题颜色的按钮
xml
<com.google.android.material.button.MaterialButton
android:id="@+id/myButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click me"
app:backgroundTint="?attr/colorPrimary" />
3.2 NavigationRail:导航栏
xml
<com.google.android.material.navigationrail.NavigationRail
android:id="@+id/navigationRail"
android:layout_width="wrap_content"
android:layout_height="match_parent"
app:menu="@menu/navigation_menu" />
3.3 SearchBar:搜索栏
xml
<com.google.android.material.searchbar.SearchBar
android:id="@+id/searchBar"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
3.4 TabBar:标签栏
xml
<com.google.android.material.tabs.TabBar
android:id="@+id/tabBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabGravity="center"
app:tabMode="scrollable"
app:tabIndicatorColor="?attr/colorPrimary" />
四、总结
Material 3 的推出标志着 Android 设计语言的新一步演进。在未来,我们可以期待更多创新的组件和功能的引入,以满足不断变化的应用设计和用户需求。
Material 3 是一次令人兴奋的更新,为开发人员提供了全新的设计语言和组件库。通过 Material You 的个性化设计,开发人员可以为用户提供个性化的界面体验。新的组件库、自定义主题和可访问性支持使开发人员能够构建出色的应用程序。如果你是一个关注设计和用户体验的开发人员,那么 Material 3 绝对值得一试。
Material 3 不仅仅是一场设计的革新,更是 Android 应用界面开发的新里程碑。通过更加灵活的主题引擎和丰富的组件,开发者能够创造出更具创意和个性化的应用。在 Material 3 的引领下,Android 应用将更加现代、富有活力。希望这篇博客能够为你提供深入了解 Material 3 的一些基本概念和组件使用方法的指导。在你的下一个项目中,尝试使用 Material 3,为用户带来全新的体验吧!