【Material Design视觉设计语言】应用组件设计(一):按钮

作者:郭孝星

微博:郭孝星的新浪微博

邮箱:[email protected]

博客:http://blog.csdn.net/allenwells

Github:https://github.com/AllenWells

按钮由文字和/或图标组成,文字及图标必须能让人轻易地和点击后展示的内容联系起来。

一 按钮的分类

1.1 悬浮响应按钮

悬浮响应按钮(Floating action button), 点击后会产生墨水扩散效果的 圆形按钮。

悬浮响应按钮是促进动作里的特殊类型。 是一个圆形的漂浮在界面之上的、拥有一系列特殊动作的按钮,这些动作通常和变换、启动、以及它本身的转换锚点相关。

悬浮响应按钮有两种尺寸: 默认尺寸和迷你尺寸。 迷你尺寸仅仅用于配合屏幕上的其他元素制造视觉上的连续性。

1.2 浮动按钮

浮动按钮(Raised button), 常见的方形纸片按钮,点击后会产生墨水扩散效果。

1.2.1 浮动按钮的设计原则

浮动按钮使按钮在比较拥挤的界面上更清晰可见。能给大多数扁平的布局带来层次感。在用动画表现浮动按钮时,浮动按钮看起来像一张放在页面上的纸片,点击后会浮起来并表现出色彩。

一个屏幕只推荐使用一个浮动操作按钮来增加其显著性。它应该只代表最常见的操作(应用的主要操作按钮应该采用圆形按钮,且不要给按钮增加额外的维度)。下面就是一种错误的做法。

浮动按钮通常用来进行积极的操作,如创建、收藏、分享、浏览和探索。

避免用浮动操作按钮进行下面这些轻微破坏性操作

  • 存档或删除
  • 非特异性操作
  • 警报或错误
  • 限制性任务如剪切文本
  • 控制应放在一个工具栏中,如音量控制或改变字体颜色

1.2.2 大屏幕下的浮动按钮摆放

关于在平板等大屏幕设备中浮动按钮的摆放位置。

浮动操作按钮可以附属到一个扩展的App Bar

浮动操作按钮可以被附属到单页中的一个工具栏或者结构化元素

浮动操作按钮可以被附属到一个单页的边缘。

单个屏幕上不要多与一个浮动操作按钮

不要将浮动操作按钮与屏幕上的每个元素都联系起来

1.3 扁平按钮

扁平按钮(Flat button), 点击后产生墨水扩散效果,和浮动按钮的区别是没有浮起的效果。

扁平按钮一般用于对话框或者工具栏, 可避免页面上过多无意义的层叠。在用动画表现扁平按钮时,应该让扁平按钮一直保持和页面贴合的状态,点击后会填充颜色。

二 按钮的使用方法

按钮的使用规则如下所示:

  • 颜色饱满的图标应当是功能性的,尽量避免把他们作为纯粹装饰用的元素。
  • 按钮类型应该基于主按钮、屏幕上容器的数量以及整体布局来进行选择。
  • 基于放置按钮的容器以及屏幕上层次堆叠的数量来选择使用浮动按钮还是扁平按钮。而且应该避免过多的层叠。
  • 一个容器应该只使用一种类型的按钮。 只在比较特殊的情况下(比如需要强调一个浮起的效果)才应该混合使用多种类型的按钮。
  • 根据特定的布局来选择使用扁平按钮或者浮动按钮。对于扁平按钮,应该在内部四周留出足够的空间(内边距)以使按钮清晰可见。

2.1 对话框中的按钮

对话框中使用扁平按钮作为主要按钮类型以避免过多的层次叠加。

2.2 底部固定按钮

如果需要一个非主要、但是能快速定位到的按钮,则可以使用底部固定按钮。

2.3 图标开关

图标适合用在应用导航条或者工具条上,作为动作按钮或者开关。图标开关可以在它的范围内呈现弹性或者非弹性的墨水扩散涟漪效果。

2.4 下拉菜单按钮

下拉菜单按钮可以用来控制对象状态; 一般会有两个甚至更多的状态。 按钮会显示当前状态以及一个向下的箭头—当按钮触发后, 一个包含所有状态的菜单会在按钮周围弹出(通常都是在下方)。 菜单中的状态通常会以字符、调色板、图标或者其他的形式呈现出来。点击任意一个状态将会改变按钮的状态显示。这展示的是一个常见的带有列表式菜单的下拉菜单按钮。

三 按钮的动画设计

我们通常会用墨水涟漪效果来实现按钮的交互响应,墨水涟漪效果会跟着焦点的改变从一个按钮转换到另一个按钮。聚焦状态的动画会表现出正常状态和点击状态间来回切换的过渡效果。

模拟按钮状态的时候, 可以使用图形轮换来表现动画。注意聚焦状态会一直处于动画的状态

3.1 扁平按钮动画设计

Flat Light/Light color

最小宽度: 88 dp, 高度: 36 dp

覆盖状态: 20% #999, 点击状态: 40% #999, 不可用状态: 10% #999

Flat Dark/Dark Color

最小宽度: 88 dp, 高度: 36 dp

覆盖状态: 15% #ccc, 点击状态: 25% #ccc, 不可用状态: 10% #ccc

我们来看一下实际的扁平按钮动画表现

3.2 浮动按钮动画设计

浮动操作按钮就像一块扩展的物体在屏幕上活动。在它里面的图标可能是活动的。

Raised Light/Light Color

最小宽度: 88 dp, 高度: 36 dp

Raised Dark/Dark Color

最小宽度: 88 dp, 高度: 36 do

正常状态: Color 500, 覆盖状态: Color 600, 点击状态: Color 700, 不可用状态: 10% #ccc

我们来看一下实际的浮动按钮动画表现

3.2.1 浮动按钮的焦点变化

浮动按钮获取焦点

浮动按钮被选中

3.2.2 浮动按钮的切换

如果在多个旁边的屏幕上有浮动操作按钮(例如选项卡),在进入屏幕时,若在每个屏幕上的操作不同,按钮应该显示和隐藏。若操作相同,按钮应该停留在屏幕上,如果有需要则转换到新的位置上。

对于带有标签的屏幕,浮动操作按钮不应朝着屏幕退出时的同一方向退出屏幕。否则会导致视觉噪音。这也将导致在屏幕上出现一个失灵的浮动操作按钮。此外,它错误地暗示了浮动操作按钮与内容在相同的 Z 水平高度上,而不是在根水平高度中 UI 主元素所在的水平高度的上。

3.2.3 浮动按钮的变形

浮动操作按钮变成一个工具栏

工具栏在滚动时转变成一个浮动操作按钮

一个浮动的操作按钮能够释放相关的操作,按动按钮时保持三个以上的选项,但不要超过六个,包括原来的浮动操作按钮。如果你有两个选项,即,你的浮动操作按钮只弹出了另外一个选项——选择哪个操作是最重要的。如果选项超过六个,用户可能在选择上有困惑。

一个浮动按钮转变为一个 material 单页,浮动操作按钮可以转变为 material 单页,app 结构中的部分。这个神奇的转变突出了按钮可以做的操作。

当浮动操作按钮变形时,在开始和结束位置之间以合理的方式转换。例如,不要穿过其他的 material 单页。

变形动画应该是可逆的,可以将新的 material 单页变回为浮动操作按钮。

浮动动作按钮可以转变成占满整个屏幕的新型物品

版权声明:当我们认真的去做一件事的时候,就能发现其中的无穷乐趣,丰富多彩的技术宛如路上的风景,边走边欣赏。

时间: 2024-11-11 08:56:27

【Material Design视觉设计语言】应用组件设计(一):按钮的相关文章

【Material Design视觉设计语言】应用样式设计

作者:郭孝星 微博:郭孝星的新浪微博 邮箱:[email protected] 博客:http://blog.csdn.net/allenwells Github:https://github.com/AllenWells [Material Design视觉设计语言]章节列表 [Material Design视觉设计语言]开篇 [Material Design视觉设计语言]Material Design设计概述 [Material Design视觉设计语言]应用布局设计 [Material D

【Material Design视觉设计语言】开篇

作者:郭孝星 微博:郭孝星的新浪微博 邮箱:[email protected] 博客:http://blog.csdn.net/allenwells Github:https://github.com/AllenWells Material Design,即原质化设计,是Google官方退出的视觉设计语言,目的在于统一Android应用界面设计,提升用户体验.事实上不仅仅在Android上,在HTML等其他领域,Material Design也表现出了旺盛的生命力. 一 设计目标 Materia

【Material Design视觉设计语言】UI组件设计(四):表格

作者:郭孝星 微博:郭孝星的新浪微博 邮箱:[email protected] 博客:http://blog.csdn.net/allenwells Github:https://github.com/AllenWells 表格是一个用来展示原始数据集,用户可操作的可视化的网格结构,并且通常出现于桌面企业产品中. 一 表格的布局 1.1 表格类型 1.1.1 基本表格 基本的表格布局如下所示: 列表头部:12 sp Roboto Medium,54% 黑色 表格内容:13sp Roboto Re

【Material Design视觉设计语言】UI组件设计(二):卡片

作者:郭孝星 微博:郭孝星的新浪微博 邮箱:[email protected] 博客:http://blog.csdn.net/allenwells Github:https://github.com/AllenWells 卡片是包含一组特定数据集的纸片,数据集含有各种相关信息,它通常用来显示由不同种类对象组成的内容的便捷途径.它们也适用于展示尺寸或操作相当不同的相似对象,像带有不同长度标题的照片. 一 卡片的特点 卡片有以下特点: 卡片通常是通往更详细复杂信息的入口. 卡片有固定的宽度和可变的

【Material Design视觉设计语言】UI组件设计(五):提示框

作者:郭孝星 微博:郭孝星的新浪微博 邮箱:[email protected] 博客:http://blog.csdn.net/allenwells Github:https://github.com/AllenWells 提示框(Dialog)用于提示用户作一些决定,或者是完成某个任务时需要的一些其它额外的信息. 一 提示框的功能 Dialog可以是用一种取消/确定的简单应答模式,它常见的应用场景如下所示: 提示框最典型的应用场景是提示用户去做一个些被安排好的决定 ,而这些决定可能是当前任务的

【Material Design视觉设计语言】UI组件设计(六):分隔线

作者:郭孝星 微博:郭孝星的新浪微博 邮箱:[email protected] 博客:http://blog.csdn.net/allenwells Github:https://github.com/AllenWells 分隔线 (Dividers) 主要用于管理和分隔列表和页面布局内的内容,以便让内容生成更好的视觉效果及空间感. 一 分隔线的功能 分隔线主要用来分隔没有锚点的项. 当在列表中没有像头像或者是图标之类的锚点元素时,单靠空格并不足以用于区分每个数据项.这种情况下使用一个等屏宽的分

【Material Design视觉设计语言】UI组件设计(三):纸片

作者:郭孝星 微博:郭孝星的新浪微博 邮箱:[email protected] 博客:http://blog.csdn.net/allenwells Github:https://github.com/AllenWells 纸片(Chips)是一种小块的用来呈现复杂实体的块状视图(例如:日历的事件或联系人),它可以包含一张图片,一个短字符串或者被截取的字符串,或者是其它的一些与实体对象有关的简洁的信息. Chips 可以非常方便的通过托拽来操作.通过按压动作可以触发悬浮卡片(或者是全屏视图)中的

【Material Design视觉设计语言】应用动画设计

作者:郭孝星 微博:郭孝星的新浪微博 邮箱:[email protected] 博客:http://blog.csdn.net/allenwells Github:https://github.com/AllenWells 动画反应了应用组件在空间中的关系.功能以及在整个系统中的趋势. 一 动画设计原则 1.1 动画真实地反应现实世界 动画应该完整的展现物体的各个真实的特性,譬如优雅.简约和美观等,来获得神奇的无缝的用户体验, 举例 迅速的加速和平滑的减速会感到自然和愉快 线性动作会感到机械,在

Android Material Design : Ripple Effect水波波纹荡漾的视觉交互设计

?? Android Material Design : Ripple Effect水波波纹荡漾的视觉交互设计 Android Ripple Effect波纹荡漾效果,是Android Material Design视觉设计引入的一种交互设计效果简言之:当点击某个view时候,view会出现像水波波纹一样的荡漾传播效果.在最新版的Android如Android 5.0或以上版本中默认具有该效果,但在低版本Android中没有,如果需要向下兼容低版本设备,则需要自己写代码实现,实现步骤: 第1步: