Android开发-设计规范

发布于:2025-09-01 ⋅ 阅读:(15) ⋅ 点赞:(0)

一、什么是 Material Design?

Material Design 是 Google 于 2014 年推出的跨平台设计系统。它将现实世界的“材质”(Material) 概念引入数字界面,通过模拟纸张的层次、阴影、运动和触感,创造出直观、有深度且富有表现力的用户体验。

💡 核心理念大胆、图形化、有意义(Bold, Graphic, Meaningful)

二、Material Design 核心原则

1. 材质是隐喻(Material is the Metaphor)

  • 界面元素被想象成类似纸张的“材质”卡片。
  • 卡片可以有高度(Elevation),通过阴影(Shadow) 来表现层级关系。
  • 高层级的卡片会覆盖在低层级的卡片之上。
  • 在 Android 中:使用 CardView 组件,通过 app:cardElevation 属性设置阴影。

2. 大胆的图形化(Bold, Graphic, Intentional)

  • 排版(Typography):使用清晰、易读的字体(如 Roboto, Google Sans)。通过不同字号、字重(粗体、常规)建立视觉层次。
  • 色彩(Color):使用大胆、饱和的色彩。遵循调色板(Color Palette) 概念,定义主色(Primary)、次色(Secondary)和错误色(Error)。
  • 图标(Icons):使用简洁、一致的 Material Icons。

3. 动效有意义(Motion Provides Meaning)

  • 动效不是装饰,而是传达信息、引导用户注意力、解释元素间关系的工具。
  • 示例
    • 按钮点击时的涟漪效果(Ripple Effect)。
    • 页面切换时的共享元素转场(Shared Element Transition)。
    • 列表项的进入/退出动画。

三、关键 Material Design 组件

Android 提供了丰富的 Material Components for Android (MDC-Android) 库,实现了这些设计规范。

1. 颜色系统(Color System)

  • 主色(Primary Color):代表应用的品牌色,用于工具栏、按钮等。
  • 次色(Secondary Color):作为主色的补充,用于浮动操作按钮(FAB)、滑块等。
  • 背景色(Background):应用的背景。
  • 表面色(Surface):卡片、菜单等表面的颜色。
  • 在代码中:在 themes.xml 中定义:
    <style name="Theme.MyApp" parent="Theme.Material3.DayNight">
        <item name="colorPrimary">@color/primary</item>
        <item name="colorSecondary">@color/secondary</item>
        <item name="android:background">@color/background</item>
    </style>

2. 排版系统(Typography)

  • 定义了从 Display(最大标题)到 Body(正文)和 Caption(说明文字)的多种文本样式。
  • 在代码中:使用 Text 组件的 style 属性:
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello Material"
        style="@style/TextAppearance.Material3.HeadlineLarge" />

3. 常用 UI 组件

组件 说明 Android 实现
Top App Bar 应用顶部的导航栏,包含标题、菜单、操作按钮。 MaterialToolbar
Bottom App Bar 底部导航栏,常与 FAB 配合使用。 BottomAppBar
Navigation Drawer 从屏幕边缘滑出的侧边栏菜单。 NavigationDrawerView
Bottom Navigation 底部标签栏,用于在顶级视图间切换。 BottomNavigationView
Floating Action Button (FAB) 圆形按钮,代表应用的主要操作。 ExtendedFloatingActionButton
Card 矩形卡片,用于展示相关内容组。 CardView
Button 包含文本按钮、悬浮按钮、轮廓按钮等。 MaterialButton
TextField 文本输入框,支持标签、辅助文本、图标等。 TextInputLayout + TextInputEditText
Snackbar 短暂显示的轻量级提示,可包含操作按钮。 Snackbar.make()
Dialog 模态对话框,用于重要提示或选择。 MaterialAlertDialogBuilder

四、布局与导航规范

1. 响应式布局

  • 应用应适应不同屏幕尺寸(手机、平板、折叠屏)。
  • 使用 ConstraintLayout 构建灵活的布局。
  • 利用 Fragment 将界面模块化。

2. 导航模式

  • 层次导航:使用返回栈(Back Stack),如从列表进入详情页。
  • 平面导航:在同级内容间切换,如 Bottom Navigation。
  • 模态导航:临时打断主流程,如 Dialog 或 Bottom Sheet。

3. 间距与留白

  • 使用 8dp 作为基础网格单位(8dp, 16dp, 24dp...)。
  • 合理的留白能提升可读性和视觉舒适度。
  • 使用 padding 和 margin 属性控制间距。

五、在 Android Studio 中实践

1. 添加 Material Design 依赖

app/build.gradledependencies 块中添加:

dependencies {
    implementation 'com.google.android.material:material:1.12.0' // 使用最新稳定版
    // ...
}

2. 使用 Material 主题

确保你的应用主题继承自 Material 主题(如 Theme.Material3.DayNight)。

3. 使用预览功能

activity_main.xml 的预览窗口中,你可以:

  • 切换深色/浅色主题。
  • 预览不同屏幕尺寸的效果。
  • 查看组件的实际渲染。

六、总结:设计规范 Checklist

项目 是否遵循
✅ 使用 Material 主题(Theme.Material3
✅ 定义清晰的主色、次色
✅ 使用 MaterialButtonTextInputLayout 等 MDC 组件
✅ 为卡片和按钮添加适当的阴影/涟漪效果
✅ 遵循 8dp 网格系统设置间距
✅ 使用 strings.xml 管理所有文本
✅ 为图标和图片提供不同分辨率的资源
✅ 考虑深色模式适配

七、结语

感谢您的阅读!如果你有任何疑问或想要分享的经验,请在评论区留言交流!