触感反馈用户体验设计

触感反馈核对清单的第 2 步中引入的 HAL-API 常量映射基于一些高度推荐的用户体验设计原则。这些用户体验设计原则定义了有关使用 Android 触感反馈 API 时的方法、时间以及使用要素。如需详细了解这些基础原则,请参阅高级触感反馈:全新触感反馈 API 的使用时间、要素和方法

常量映射

图 1. HAL-API 常量映射:离散模型

选择触感反馈效果

按触感反馈强度 (VibrationEffect)

EFFECT_CLICK 是确定您偏好的触感反馈强度 (VibrationEffect) 的最佳起点:它是介于 EFFECT_TICK 的“轻”触感和 EFFECT_HEAVY_CLICK 的“重”触感之间的中间值。从 EFFECT_CLICK 开始,您可以使用 EFFECT_HEAVY_CLICK 来增加强度,也可以使用 EFFECT_TICK 来降低强度,从而增加或降低概念性能量。请注意,EFFECT_DOUBLE_CLICK 可提供最高的概念性能量,因为它是可重复的。

触感反馈强度

图 2. 触感反馈强度设置

按输入事件和界面元素 (HapticFeedbackConstants)

如果您的目标与特定的输入事件(例如长按或滑动)或界面元素(如键盘)相关,请在 HapticFeedbackConstants 中查找预定义的触感反馈常量。每个常量的名称都表示特定的用例,例如 KEYBOARD_PRESSLONG_PRESS

模拟真实按钮按下事件

输入事件(虚拟软键)的轻触触感反馈可模拟物理实体(例如机械硬键)的按钮按下操作。

输入事件:成对交互流

点击事件旨在模拟机械按钮的行为,使用这类按钮的方式为先按下,然后松开。按下按钮感觉到的机械推动力强度高于松开按钮。因此,按下按钮的触感反馈比松开按钮的触感反馈更为强烈。

按下和松开事件触感反馈

图 3. 二进制输入事件产生的触感反馈效果

触感反馈强度:按下按钮动作

互动时间较短、较快的输入事件与“更轻”触感反馈关联。互动时间较长、较深的输入事件与“强烈”触感反馈关联。

按下动作的触感反馈

图 4. 动作的触感反馈效果

在手势输入事件中模拟虚拟纹理

当手指在屏幕的视觉界面上移动时,基于手势的输入(例如拖动或滚动)可以与虚拟触感反馈纹理相匹配,例如,当手指在包含虚拟刻度标记界面元素的时钟界面上移动时,产生重复的触感反馈。

虚拟触感反馈纹理的效果是重复性的。这通常会导致感知的能量高于实际幅度(当效果未重复,或仅发生了一次)。因此,专为虚拟触感纹理(例如 CLOCK_TICKTEXT_HANDLE_MOVE)设计的触感反馈常量必须足够细微,以便通过重复提示来产生移动的感觉。

虚拟纹理

图 5.用于模拟虚拟纹理的触感效果

包含情绪

若要在触感反馈效果中包含正面情绪或负面情绪,请对负面情绪施加更强的感觉,以引起用户的注意。

触感反馈情感

图 6. 包含情绪的触感效果

避免长时间振动时发出可听见的噪声

为避免因长时间振动来引起注意而产生可听见的噪声,请平滑地加速以产生逐步提升效果。您可以使用 createWaveform(long[] timings, int[] amplitudes, int repeat) 执行此操作。

长时间振动

图 7. 长时间振动逐步提升效果