Android 裝置上最常見的震動致動器是線性共振致動器 (LRAs)。LRAs 會模擬按鈕在玻璃表面上點擊時的感受,而玻璃表面不會有任何反應。清晰且明確的點擊回饋信號通常會持續 10 到 20 毫秒。這種感覺可讓使用者互動體驗更自然。對於虛擬鍵盤,這項點擊回饋功能可加快輸入速度並減少錯誤。
LRAs 有幾個常見的共振頻率:
- 部分 LRAs 的共振頻率介於 200 到 300 Hz,這與人類皮膚對振動最敏感的頻率相符。在這個頻率範圍內,震動的感覺通常被形容為平滑、尖銳和穿透。
- 其他型號的 LRAs 共振頻率較低,約為 150 Hz。這種感覺在質地上較柔軟、更飽滿 (在維度上)。
在兩種不同頻率下,相同的輸入電壓可能會產生不同的振動輸出幅度。頻率離 LRA 的諧振頻率越遠,振動幅度就越低。
特定裝置的觸覺回饋效果會同時使用震動致動器和驅動程式。包含超速和主動煞車功能的觸覺駕駛器,可縮短 LRAs 的升溫時間和振鈴聲,進而提供更靈敏且清晰的震動效果。
裝置上的預設波形平滑處理
舉例來說,請考慮自訂波形模式在一般裝置上的行為:
Kotlin
val timings: LongArray = longArrayOf(50, 50, 50, 50, 50, 100, 350, 250)
val amplitudes: IntArray = intArrayOf(77, 79, 84, 99, 143, 255, 0, 255)
val repeatIndex = -1 // Don't repeat.
vibrator.vibrate(VibrationEffect.createWaveform(timings, amplitudes, repeatIndex))
Java
long[] timings = new long[] { 50, 50, 50, 50, 50, 100, 350, 250 };
int[] amplitudes = new int[] { 77, 79, 84, 99, 143, 255, 0, 255 };
int repeatIndex = -1 // Don't repeat.
vibrator.vibrate(VibrationEffect.createWaveform(timings, amplitudes, repeatIndex));
下列圖表顯示輸入波形和輸出加速度,對應前述程式碼片段。請注意,每當模式中的振幅出現階梯式變化 (即 0ms、150ms、200ms、250ms 和 700ms) 時,加速度會逐漸增加,而非突然增加。在每個振幅階梯變化時,也會出現過衝現象,而且當輸入振幅突然降至 0 時,會出現持續至少 50 毫秒的明顯振鈴聲。
改善觸覺回饋模式
為避免過度超出並縮短振鈴時間,請更緩慢地變更振幅。以下是修訂版的波形和加速度圖表:
Kotlin
val timings: LongArray = longArrayOf(
25, 25, 50, 25, 25, 25, 25, 25, 25, 25, 75, 25, 25,
300, 25, 25, 150, 25, 25, 25
)
val amplitudes: IntArray = intArrayOf(
38, 77, 79, 84, 92, 99, 121, 143, 180, 217, 255, 170, 85,
0, 85, 170, 255, 170, 85, 0
)
val repeatIndex = -1 // Do not repeat.
vibrator.vibrate(VibrationEffect.createWaveform(timings, amplitudes, repeatIndex))
Java
long[] timings = new long[] {
25, 25, 50, 25, 25, 25, 25, 25, 25, 25, 75, 25, 25,
300, 25, 25, 150, 25, 25, 25
};
int[] amplitudes = new int[] {
38, 77, 79, 84, 92, 99, 121, 143, 180, 217, 255, 170, 85,
0, 85, 170, 255, 170, 85, 0
};
int repeatIndex = -1; // Do not repeat.
vibrator.vibrate(VibrationEffect.createWaveform(timings, amplitudes, repeatIndex));
建立更複雜的觸覺技術效果
滿意點擊回應中的其他元素則較為複雜,需要對裝置中使用的 LRA 有一定程度的瞭解。為了獲得最佳結果,請使用裝置預先建構的波形和平台提供的常數,以便執行下列操作:
- 執行清晰效果和基本元素。
- 將這些音效串連起來,組合成新的觸覺效果。
這些預先定義的觸覺常數和基本元素可大幅加快您的工作速度,同時創造高品質的觸覺效果。