本頁面會列出公開 HAL 常數和 API 常數之間的建議對應項目。如果評估的硬體未實作 HAL 常數,請更新「實作常數和原始元素」頁面中所述的備用模式,以產生類似的輸出內容。這項對應作業可透過兩種不同的預設模型協助完成:
離散模型 (簡單)
- 振幅是這個模型的重要變數。HAL 中的每個實體都代表不同的觸覺振幅。
- 這個模型是實作基本觸覺 UX 所需的最低要求。
- 更進階的觸覺回饋使用者體驗需要進階硬體和進階模型 (持續性模型)。
持續式模型 (進階)
- 紋理和振幅是這個模型的重要變數。HAL 中的每個實體都代表不同的觸覺回饋紋理。每個 HAL 實體的振幅都由縮放因子 (
S
) 控制。 - 這個模型需要進階硬體。如果原始設備製造商 (OEM) 想使用進階觸覺回饋使用者體驗,並搭配
VibrationEffect.Composition
(以便充分運用最新的觸覺回饋 API),建議使用此模型導入硬體。
- 紋理和振幅是這個模型的重要變數。HAL 中的每個實體都代表不同的觸覺回饋紋理。每個 HAL 實體的振幅都由縮放因子 (
離散模型
建議您將 API 中提供的所有公開常數與適當的 HAL 常數對應。如要開始這項程序,請找出裝置可在 HAL 中定義多少個具有離散振幅的觸覺波形。以該概念為架構的具體問題如下:在手機中,可以定義多少種單脈衝觸覺效果,且這些效果的振幅差異可供人類察覺?這項問題的答案會決定對應方式。
定義 HAL 常數是硬體相關的程序。舉例來說,入門級手機可能只有產生單一觸覺回饋波形的硬體功能。配備更先進硬體元件的裝置可產生更廣泛的離散振幅等級,並可在 HAL 中定義多種觸覺回饋波形。HAL-API 常數對應會採用 HAL 常數 (使用中等振幅做為基準),然後安排更強或更弱的效果。
圖 14. 依振幅計算 HAL 常數範圍
定義具有離散振幅的 HAL 常數數量後,就可以根據 HAL 常數數量對應 HAL 和 API 常數。這項對應程序可將單一衝量 API 常數區分為最多三個幅度層級群組。API 常數的區隔方式,是根據伴隨輸入事件的使用者體驗原則。詳情請參閱「觸覺回饋使用者體驗設計」。
圖 15. HAL-API 常數對應:離散模型
如果裝置僅支援兩個具有離散振幅的 HAL 常數,請考慮合併中等和高振幅 HAL 常數。在實際應用中,這個概念的例子是將 EFFECT_CLICK
和 EFFECT_HEAVY_CLICK
對應至相同的 HAL 常數,也就是中等振幅等級 HAL 常數。如果裝置只支援一個 HAL 常數,且振幅為離散值,請考慮將所有三個等級合併為一個。
連續模型
可將具有振幅可擴展性的連續模型套用至定義 HAL 常數。您可以將比例因數 (S
) 套用至 HAL 常數 (例如 HAL_H0
、HAL_H1
),產生經過縮放的 HAL (HAL_H0
x S
)。在本例中,經過縮放的 HAL 會對應至定義 API 常數 (HAL_H0
x S1
= H0S1
= EFFECT_TICK
),如圖 16 所示。透過連續模型的振幅可擴展性,裝置可以儲存少量具有獨特觸覺回饋紋理的 HAL 常數,並透過調整比例因數 (S
) 新增振幅變化。裝置製造商可以根據要提供的觸覺回饋紋理數量,定義 HAL 常數的數量。
圖 16. 根據紋理 (HAL_H0) 和振幅縮放比例 (S) 設定 HAL 常數範圍
圖 17. HAL-API 常數對應:連續模式
在連續模型中,不同的 HAL 常數代表不同的觸覺紋理,而非不同的振幅;縮放比例 (S
) 可設定振幅。不過,由於紋理感知 (例如清晰度) 與時間和振幅感知相關,因此建議在 HAL API 對應的設計過程中,結合紋理和縮放比例。
圖 18 說明常數對應,從一個 HAL 到多個 API 常數,並增加振幅可擴展性。
圖 18. 利用振幅可擴展性增加變化
對於所有可調整的 API 常數 (例如 VibrationEffect.Composition
中的 PRIMITIVE_TICK
和 PRIMITIVE_CLICK
),如果 API 常數是透過 addPrimitive(int primitiveID, float scale,
int delay)
宣告,則 API 常數的能量等級會取決於 float scale
參數。PRIMITIVE_TICK
和 PRIMITIVE_CLICK
可使用不同的 HAL 常數進行設計,以便清楚區分。如果您想為紋理新增變化,建議採用這種做法。