Mapowanie stałych HAL-API wprowadzone w Mapowanie stałych między HAL a interfejsem API jest oparte na wysoce zalecanych zasadach projektowania UX. Zasady projektowania UX określają podstawy tego, jak, kiedy i czego używać podczas korzystania z interfejsów Android Haptics API. Więcej informacji o tych podstawowych zasadach znajdziesz w artykule Zaawansowane haptyczne: kiedy, co i jak w przypadku nowych interfejsów Haptic API.
Rysunek 1. Mapowanie stałych HAL-API: model dyskretny
Wybieranie efektów haptycznych
Według siły haptycznej (VibrationEffect)
EFFECT_CLICK to najlepszy punkt wyjścia do określenia preferowanej siły haptycznej (VibrationEffect): to mediana między „lekkimi” haptycznymi EFFECT_TICK a „ciężkimi” haptycznymi EFFECT_HEAVY_CLICK. Zaczynając od EFFECT_CLICK, możesz zwiększyć lub zmniejszyć energię koncepcyjną, dodając siłę za pomocą EFFECT_HEAVY_CLICK lub zmniejszając siłę za pomocą EFFECT_TICK. Pamiętaj, że EFFECT_DOUBLE_CLICK zapewnia największą energię koncepcyjną, ponieważ jest powtarzany.
Rysunek 2. Ustawienia siły haptycznej
Według zdarzeń wejściowych i elementów interfejsu (HapticFeedbackConstants)
Jeśli Twój cel jest powiązany z konkretnymi zdarzeniami wejściowymi (np. długie naciśnięcie lub
przesunięcie) albo elementami interfejsu (np. klawiaturą), znajdź predefiniowane stałe haptyczne w
HapticFeedbackConstants.
Nazwa każdej stałej odnosi się do konkretnych przypadków użycia, takich jak KEYBOARD_PRESS lub LONG_PRESS.
Symulowanie zdarzeń naciśnięcia przycisku w rzeczywistości
Dotykowe reakcje haptyczne na zdarzenia wejściowe (wirtualne przyciski programowe) mogą symulować naciśnięcia przycisków za pomocą fizycznych elementów (takich jak mechaniczne przyciski fizyczne).
Zdarzenie wejściowe: przepływ interakcji parami
Zdarzenie kliknięcia ma symulować działanie przycisku mechanicznego, który jest naciskany , a następnie zwalniany. Odczuwalna energia impulsu mechanicznego pochodzącego z naciśnięcia przycisku jest większa niż w przypadku zwolnienia przycisku. Dlatego reakcja haptyczna na naciśnięcie przycisku jest silniejsza niż reakcja haptyczna na zwolnienie przycisku.
Rysunek 3. Efekty haptyczne według binarnego zdarzenia wejściowego
Siła haptyczna: afordancja naciśnięcia przycisku
Zdarzenia wejściowe z krótszym i lżejszym zaangażowaniem są powiązane z lżejszymi haptycznymi. Zdarzenia wejściowe z dłuższym i głębszym zaangażowaniem są powiązane z silniejszymi haptycznymi.
Rysunek 4. Efekty haptyczne według afordancji
Symulowanie wirtualnej tekstury w zdarzeniu wejściowym gestu
Dane wejściowe oparte na gestach (np. przewijanie lub przesuwanie) można dopasować do wirtualnych tekstur haptycznych, gdy palec przesuwa się po ekranie wraz z wizualnymi interfejsami, np. generując powtarzające się reakcje haptyczne, gdy palec przesuwa się po interfejsie zegara z wirtualnymi elementami interfejsu.
Efekty wirtualnych tekstur haptycznych mają być powtarzane. Często sprawia to, że odczuwalna energia jest wyższa niż amplituda (gdy efekt jest wywoływany
bez powtórzenia lub tylko raz). Z tego powodu stałe haptyczne przeznaczone do wirtualnych tekstur haptycznych (np. CLOCK_TICK lub TEXT_HANDLE_MOVE) muszą być subtelne, aby zapewnić wrażenie ruchu dzięki powtarzającym się wskazówkom.
Rysunek 5. Efekty haptyczne symulujące wirtualną teksturę
Uwzględnianie emocji
Aby uwzględnić pozytywne lub negatywne emocje w efektach haptycznych, zastosuj silniejsze odczucia w przypadku negatywnych emocji, aby przyciągnąć uwagę użytkownika.
Rysunek 6. Efekty haptyczne z emocjami
Unikanie słyszalnego hałasu spowodowanego długimi wibracjami
Aby uniknąć słyszalnego hałasu spowodowanego długimi wibracjami w przypadku haptycznych, przyspiesz płynnie wzorzec, aby utworzyć efekt narastania. Aby to zrobić, użyj
createWaveform(long[] timings, int[] amplitudes, int repeat).
Rysunek 7. Efekt narastania długich wibracji