在移动设备上使用触觉反馈时,越少越好。过多的振动可能会令人烦恼,甚至会使手麻木,因为设备通常在用户手中,并且用户会全神贯注于它。它也可能分散用户注意力的目标任务,这可能导致用户快速关闭所有触觉反馈。但是,精心设计的触觉反馈提供了宝贵的感官反馈,使用户能够更深入地参与其设备。
本页面介绍了使用触觉反馈的用例,介绍了触觉效果的分类,并涵盖了应用的基本指南。
在您的应用中添加触觉反馈的用例
以下是一些将触觉反馈整合到您的应用中的原因。
通知用户需要关注的事件。 例如,来电或短信,或日历中的即将举行的会议。
在用户操作后确认设备的状态变化。 例如,按钮按下时的点击反馈、解锁手机、指纹识别接受或拒绝,或激活摄像头。
使用效果取悦用户。 这些效果可以增强正在进行的用户操作或模拟物理交互。例如,滚动反馈、滑块卡入到位,或与动画、声音、视频和游戏同步的触觉效果。
触觉反馈分类
此处介绍的触觉反馈原则围绕清晰触觉、丰富触觉和嗡嗡触觉设计。
清晰触觉
清晰触觉是指与离散事件(例如按钮按下)相关的清晰明了的触觉。这些效果通常旨在模仿相应的现实世界机械动作,例如按下物理按钮时感受到的动作。
Android 在VibrationEffect
中预定义了清晰的触觉效果。但是,通常情况下,应用应使用来自HapticFeedbackConstants
的面向操作的常量,以确保跨设备的效果和操作的一致性。
面向操作的常量的另一个优势在于,如果用户设备不支持更复杂的效果,则平台可以提供回退行为。
随着您扩展触觉反馈的用例,可用的清晰触觉有时会显得单调乏味。在这种情况下,请尝试使用更具表现力的丰富触觉。
丰富触觉
丰富触觉通常需要具有更宽频率带宽的触觉执行器,从而实现更大的表现力和范围。丰富触觉也可以通过对不同振幅和间隔的清晰触觉基元进行排序来产生。
丰富触觉效果的示例包括
- “飘飘”的感觉,类似于蝴蝶在您的指尖上拍打翅膀
- 手指拖动或滑动穿过表面时感觉到的表面纹理
- 摇晃和不稳定感,或沉重和回声感
嗡嗡触觉
嗡嗡触觉的特点是嘈杂、尖锐和穿透性的振动,即使振动结束后也会留下余震,例如刺痛感。它还往往具有响铃效应,在振动完全停止之前感觉像回声。
嗡嗡触觉的示例包括
- 操作一台钻孔机
- 骑摩托车
- 在移动设备上,按键后长时间的响铃振动
早在寻呼机和功能手机时代,低端手机的低性能触觉执行器或驱动程序往往会产生长时间的嗡嗡振动以用于通知目的。
触觉反馈设计指南
在高级别上,设计指南可以概括为
- 优先选择丰富和清晰的触觉,而不是嗡嗡触觉。
- 保持一致性,包括系统和应用设计。
- 注意使用频率和重要性。
优先考虑预定义的触觉常量和效果
如果您的操作在HapticFeedbackConstants
中存在预定义的操作,请使用该常量。这确保了一致的用户交互体验,这对于辅助功能考虑尤其宝贵。
如果您正在创建自己的效果,请考虑使用VibrationEffect
预定义效果和VibrationEffect.Composition
基元。它们更有可能在支持它们的设备上提供一致的质量体验。
将事件重要性和频率与强度相关联
触觉效果不应压倒用户或显得毫无意义。
应用于非常频繁的事件(如滚动或移动文本句柄)的触觉效果应非常微妙,以提供愉悦的整体体验。
更重要的事件(如刷新页面或提交表单)应比更改切换或在列表中滚动更强烈,例如。
结合这两个概念创建随着交互达到目标而变得更强的效果,例如,随着拖动、放下或捕捉操作,逐渐增加一系列滴答声的振幅。
保持一致性
在您的应用中保持触觉反馈应用的一致性。如果特定的交互(如表单提交或应用内导航)具有触觉反馈,请确保对所有类似交互应用相同的效果。这有助于用户将特定触觉反馈与含义相关联。
还可以通过对定义良好的交互(如时间选择器或虚拟键盘)使用相同的HapticFeedbackConstants
来与 Android 系统保持一致。
将视觉和音频体验与触觉反馈一起设计
将触觉反馈视为整体用户体验的一部分。
我们强烈建议共同设计视觉、音频和触觉效果。使其与视觉动画和声音模式和谐或一致。视觉和听觉输入可以增强感知到的触觉,而精心设计的触觉效果可以为视觉和音频效果提供物理感。
相反,触觉反馈如果播放不同步或感觉与视觉和音频效果不一致,可能会让用户感到不安。在某些情况下,用户可能会认为触觉执行器已损坏。
避免使用传统的单次振动作为触觉反馈
避免使用传统的单次振动,例如由VibrationEffect.createOneShot
定义或使用 API Vibrator.vibrate(long)
和Vibrator.vibrate(long[], int)
执行的振动。
这些振动在输入波形结束后持续很长时间时可能会产生嗡嗡声,尤其是在触觉执行器或驱动程序性能较低的设备上。
良好的按键触觉反馈信号应持续 10 到 20 毫秒。但是,在对执行器进行 20 毫秒输入后,执行器可能会继续响铃另外 20 到 50 毫秒。因此,最好避免为此类反馈使用单次振动。