觸覺回饋設計原則

行動裝置上的觸覺回饋要簡單明瞭,由於裝置通常會握在手中,使用者會全神貫注於裝置,因此過多的震動可能會令人感到惱人,甚至會讓手麻木。這也可能會分散使用者原本要執行的工作,導致使用者迅速關閉所有觸覺回饋。不過,精心設計的觸覺回饋可提供寶貴的感官回饋,讓使用者與裝置的互動更豐富。

本頁面說明使用觸覺回饋的用途,並介紹觸覺回饋效果的分類,以及應用程式的基本規範

在應用程式中加入觸覺回饋的用途

以下列舉在應用程式中加入觸覺回饋的幾個原因。

  • 通知使用者需要注意的事件。例如來電、簡訊,或行事曆上的即將舉行的會議。

  • 確認裝置在使用者採取動作後的狀態變更。例如按下按鈕的點擊回饋、解鎖手機、接受或拒絕指紋辨識,或啟動相機。

  • 透過特效讓使用者感到滿意。這類效果可強化使用者正在進行的動作,或模擬實體互動。例如捲動回饋、滑桿自動定位,或是與動畫、音效、影片和遊戲同步的觸覺效果。

觸覺回饋分類

這裡介紹的觸覺技術原則,是以清晰觸覺技術豐富觸覺技術嗡嗡作響的觸覺技術為設計重點。

清晰的觸覺回饋

清晰的觸覺回饋是指與按鈕按下等離散事件相關的清晰觸覺回饋。這些效果通常會模仿現實世界中的機械動作,例如按下實體按鈕時的感受。

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 毫秒。因此,建議您避免為這類回饋使用單次震動。