Mapowanie stałych HAL-API wprowadzone w kroku 2 listy kontrolnej z czujnikiem haptycznym jest oparte na bardzo zalecanych zasadach projektowania UX. Zasady projektowania UX określają, jak, kiedy i czego używać podczas korzystania z interfejsów API haptycznych Androida. Przeczytaj artykuł Zaawansowane funkcje haptyczne: kiedy, co i jak działają nowe interfejsy haptyczne, aby dowiedzieć się więcej o tych podstawowych zasadach.
Rysunek 1. Mapowanie stałych HAL-API: model dyskretny
Wybieranie efektów haptycznych
Na podstawie siły haptycznej (VibrationEffect
)
Najlepiej zacząć od wartości EFFECT_CLICK
, która określa preferowany poziom siły haptycznej (VibrationEffect
): jest to mediana między „lekkim” czujnikiem haptycznym EFFECT_TICK
i „intensywnym” czujnikiem haptycznym EFFECT_HEAVY_CLICK
. Począwszy od EFFECT_CLICK
możesz zwiększać lub zmniejszać energię koncepcyjną, zwiększając siłę za pomocą funkcji EFFECT_HEAVY_CLICK
lub zmniejszając ją za pomocą funkcji EFFECT_TICK
. Pamiętaj, że EFFECT_DOUBLE_CLICK
zapewnia najwyższą energię koncepcyjną, ponieważ jest powtarzany.
Rysunek 2. Ustawienia siły haptycznej
Według zdarzeń wprowadzania danych i elementów interfejsu (HapticFeedbackConstants
)
Jeśli Twój cel jest powiązany z określonymi zdarzeniami wejścia (np. długim naciśnięciem lub przesunięciem) lub elementami interfejsu użytkownika (np. klawiaturą), znajdź w HapticFeedbackConstants
wstępnie zdefiniowane stałe haptyczne.
Nazwa każdej stałej odnosi się do konkretnych przypadków użycia, takich jak KEYBOARD_PRESS
lub LONG_PRESS
.
Symulowanie rzeczywistych zdarzeń naciśnięcia przycisku
Dotykowe informacje zwrotne zdarzeń wprowadzania (wirtualne przyciski) mogą symulować naciśnięcia przycisków za pomocą elementów fizycznych (takich jak mechaniczne przyciski).
Zdarzenie wejściowe: wzajemna ścieżka interakcji
Zdarzenie kliknięcia ma na celu symulowanie działania przycisku mechanicznego, który jest naciskany, a następnie zwalniany. Postrzegana energia impulsu mechanicznego po naciśnięciu przycisku jest większa niż ta, gdy go zwolnisz. Dlatego reakcja haptyczna na naciśnięcie przycisku jest silniejsza niż reakcja haptyczna na zwolnienie przycisku.
Rysunek 3. Efekty haptyczne na podstawie binarnego zdarzenia wejściowego
Siła haptyczna: możliwości naciśnięcia przycisku
Zdarzenia wejściowe o krótszym i mniejszym zaangażowaniu są powiązane z mniej intensywnymi wibracjami. Zdarzenia wejściowe, które wiążą się z dłuższym i intensywniejszym zaangażowaniem, są powiązane z silniejszym wibrowaniem.
Rysunek 4. Efekty haptyczne w ramach możliwości
Symuluj wirtualną teksturę w zdarzeniu wprowadzania gestami
Dane wejściowe oparte na gestach (np. przesuwanie lub przewijanie) można dopasowywać do wirtualnych tekstur haptycznych, gdy palec porusza się po ekranie, a także do wizualnych elementów interfejsu. Można na przykład generować powtarzające się sygnały haptyczne, gdy palec porusza się po interfejsie zegara z wirtualnymi elementami interfejsu w postaci znaczników.
Efekty wirtualnych tekstur haptycznych są przeznaczone do powtarzania. Często powoduje to, że postrzegana energia jest większa niż amplituda (gdy efekt jest wywoływany bez powtórzeń lub tylko raz). Z tego powodu stałe haptyczne przeznaczone do wirtualnych tekstur haptycznych (takich jak CLOCK_TICK
lub TEXT_HANDLE_MOVE
) muszą być subtelne, aby zapewniać uczucie ruchu dzięki powtarzającym się sygnałom.
Rysunek 5. efekty haptyczne symulujące wirtualną fakturę;
Uwzględnij nastroje
Aby uwzględnić w efektach haptycznych pozytywne lub negatywne nastroje, zastosuj silniejsze wrażenie w przypadku nastroju negatywnego, aby zwrócić uwagę użytkownika.
Rysunek 6. Efekty haptyczne z uwzględnieniem nastroju
Unikaj dźwięków podczas długich wibracji
Aby uniknąć słyszalnego hałasu z powodu długich wibracji, które mają zwracać uwagę, przyspiesz wzór płynnie, aby uzyskać efekt narastania. Użyj w tym celu argumentu createWaveform(long[] timings, int[] amplitudes, int repeat)
.
Rysunek 7. Długi efekt narastania wibracji