本文說明 Android 裝置的觸覺回饋原則,涵蓋用途、觸覺效果分類 (清晰、豐富和震動) 和應用程式開發人員的重要設計指南。keywords_public: > haptics, vibration, feedback, Android, UI, UX, design, principles, guidelines, HapticFeedbackConstants
就行動裝置的觸覺回饋而言,越少越好。如果震動過於頻繁,可能會造成困擾,甚至導致手部麻木,因為使用者通常會全神貫注地握持裝置。也可能干擾使用者原本想執行的工作,導致使用者快速關閉所有觸覺回饋。不過,精心設計的觸覺回饋可提供寶貴的感官回饋,讓使用者與裝置的互動更加豐富。
本頁說明觸覺回饋的用途、介紹觸覺效果的分類,以及應用程式的基本指南。
在應用程式中加入觸覺回饋的用途
以下列舉在應用程式中加入觸覺回饋的幾個原因。
通知使用者需要注意的事件。例如來電或簡訊,或是行事曆中即將舉行的會議。
確認使用者動作後,裝置的狀態是否有所變更。 例如按下按鈕、解鎖手機、接受或拒絕指紋,或是啟動相機時的觸覺回饋。
為使用者提供特效,讓他們感到驚喜。這類效果可強化進行中的使用者動作,或模擬實體互動。例如捲動回饋、滑桿自動歸位,或是與動畫、音效、影片和遊戲同步的觸覺效果。
觸覺技術分類
本文介紹的觸覺原則是以清晰觸覺、豐富觸覺和震動觸覺為基礎設計。
清除觸覺回饋
「清晰觸覺回饋」是指與個別事件 (例如按下按鈕) 相關的清晰觸覺感受。這些效果通常會模仿相應的實體機械動作,例如按下實體按鈕時的感覺。
Android 在 VibrationEffect 中預先定義了清晰的觸覺效果。不過,一般而言,應用程式應使用 HapticFeedbackConstants 中的動作導向常數,確保裝置上的效果和動作一致。
動作導向常數的另一個優點是,如果使用者的裝置不支援較複雜的效果,平台可以提供備援行為。
隨著觸覺回饋的應用範圍擴大,可用的清晰觸覺回饋有時會感覺平淡單調。在這種情況下,請盡量使用更具表現力的豐富觸覺回饋。
豐富的觸覺回饋
豐富的觸覺回饋通常需要頻率頻寬較大的觸覺致動器,才能提供更豐富的表現力和範圍。您也可以在不同振幅和間隔中排序明確的觸覺回饋基本類型,產生豐富的觸覺回饋。
豐富的觸覺效果範例如下:
- 「震動」感,類似於蝴蝶在指尖拍動翅膀
- 手指在表面上拖曳或滑動時感受到的紋理
- 搖晃和不穩定的感覺,或沉重和震動的感覺
雀躍無比的觸覺回饋
Buzzy 觸覺回饋的特徵是震動噪音大、尖銳且穿透力強,震動結束後仍會留下餘效,例如刺痛感。此外,震動完全停止前,手機通常會發出鈴聲般的迴響。
以下列舉幾種震動觸覺感受:
- 操作電鑽
- 騎摩托車
- 在行動裝置上,按下按鍵後會發出冗長鈴聲的震動
早在呼叫器和功能型手機時代,低階行動裝置的觸覺致動器或驅動程式效能不佳,往往會產生嗡嗡作響的長震動,用於通知用途。
觸覺回饋設計指南
設計原則大致可歸納如下:
- 請優先使用豐富且清晰的觸覺回饋,而非震動觸覺回饋。
- 無論是系統還是應用程式設計,都應保持一致。
- 請注意使用頻率和重要性。
優先使用預先定義的觸覺常數和效果
如果您的動作屬於 HapticFeedbackConstants 中預先定義的動作,請使用該常數。這可確保使用者互動體驗一致,對於無障礙考量而言特別有價值。
如要自行建立特效,請考慮使用 VibrationEffect 預先定義的特效和 VibrationEffect.Composition 基本功能。在支援這些格式的裝置上,使用者更有可能獲得一致的優質體驗。
將事件重要性和頻率與強度建立關聯
觸覺效果不應讓使用者感到不適或多餘。
如果觸覺效果套用至非常頻繁的事件 (例如捲動或移動文字控點),則應非常細微,才能提供整體舒適的體驗。
舉例來說,重新整理頁面或提交表單等重要事件,應該比變更切換按鈕或捲動清單等事件更強。
結合這兩種概念,即可建立效果,在互動達到目標時會變得更強,例如透過拖曳、放置或對齊動作,逐步增加一連串刻度的振幅。
保持一致
在應用程式中,觸覺效果的應用方式應保持一致。如果特定互動 (例如提交表單或應用程式內導覽) 具有觸覺回饋,請務必將相同效果套用至所有類似互動。這有助於使用者將特定觸覺回饋與某種意義建立關聯。
此外,請使用相同的 HapticFeedbackConstants,與 Android 系統保持一致,以便定義明確的互動,例如時間選擇器或虛擬鍵盤。
運用觸覺回饋設計視聽體驗
將觸覺回饋納入整體使用者體驗。
強烈建議共同設計視覺、音訊和觸覺效果。與視覺動畫和音效模式保持和諧或一致。視覺和聽覺輸入內容可強化觸覺回饋,精心設計的觸覺效果則可為視覺和音效提供實體感。
反之,如果觸覺回饋與視覺和音效不同步,或感覺不一致,可能會讓使用者感到不安。在某些情況下,使用者可能會認為觸覺致動器故障。
避免使用舊版單次震動功能提供觸覺回饋
請避免使用舊版單次震動,例如 VibrationEffect.createOneShot 定義的震動,或是使用 Vibrator.vibrate(long) 和 Vibrator.vibrate(long[], int) API 執行的震動。
如果輸入波形結束後,震動持續很長一段時間,可能會感覺到嗡嗡聲,尤其是在觸覺致動器或驅動程式效能不佳的裝置上。
良好的按鍵觸覺回饋訊號應介於 10 至 20 毫秒。不過,在 20 毫秒的輸入訊號結束後,致動器可能會繼續震動 20 到 50 毫秒。因此,建議避免使用單次震動來提供這類回饋。