La mise en correspondance des constantes HAL-API introduite à l'étape 2 de la checklist haptique est basée sur des principes de conception UX hautement recommandés. Les principes de conception UX définissent la base de la façon dont, quand et quoi utiliser lorsque vous utilisez les API haptiques Android. Consultez l'article Advanced Haptics: The when, What, and How of New Haptic APIs (Technologies haptiques avancées : quand, quoi et comment des nouvelles API haptiques) pour en savoir plus sur ces principes fondamentaux.
Figure 1 : Mappage des constantes HAL-API: modèle discret
Sélectionner des effets haptiques
Par intensité du retour haptique (VibrationEffect
)
EFFECT_CLICK
est le meilleur point de départ pour déterminer l'intensité haptique de votre choix (VibrationEffect
) : il s'agit de la médiane entre les haptiques "légères" de EFFECT_TICK
et les haptiques "lourdes" de EFFECT_HEAVY_CLICK
. En commençant par EFFECT_CLICK
, vous pouvez augmenter ou diminuer l'énergie conceptuelle en ajoutant de la force avec EFFECT_HEAVY_CLICK
ou en diminuant la force avec EFFECT_TICK
. N'oubliez pas que EFFECT_DOUBLE_CLICK
fournit l'énergie conceptuelle la plus élevée, car elle est répétée.
Figure 2. Paramètres de l'intensité du retour haptique
Par événements d'entrée et éléments d'interface utilisateur (HapticFeedbackConstants
)
Si votre objectif est associé à des événements d'entrée spécifiques (comme un appui long ou un balayage) ou à des éléments d'interface utilisateur (comme le clavier), recherchez des constantes haptiques prédéfinies dans HapticFeedbackConstants
.
Le nom de chaque constante fait référence à des cas d'utilisation spécifiques, comme KEYBOARD_PRESS
ou LONG_PRESS
.
Simuler des événements de pression sur un bouton réel
Le retour haptique tactile des événements d'entrée (boutons virtuels) peut simuler des pressions sur les boutons à l'aide d'entités physiques (telles que des boutons physiques mécaniques).
Événement d'entrée: flux d'interaction par paire
L'événement de clic est conçu pour simuler le comportement d'un bouton mécanique, qui est appuyé, puis relaché. L'énergie perçue de l'impulsion mécanique lors d'une pression sur un bouton est plus élevée que celle d'un relâchement de bouton. Par conséquent, le retour haptique pour les pressions sur les boutons est plus fort que le retour haptique pour les relâchements de boutons.
Figure 3. Effets haptiques par événement d'entrée binaire
Intensité haptique: affordance de l'appui sur un bouton
Les événements d'entrée dont l'engagement est plus court et plus léger sont associés à des retours haptiques plus légers. Les événements d'entrée dont l'engagement est plus long et plus profond sont associés à un retour haptique plus fort.
Figure 4. Effets haptiques par affordance
Simuler une texture virtuelle dans un événement de saisie gestuelle
L'entrée gestuelle (comme le balayage ou le défilement) peut être alignée sur des textures haptiques virtuelles lorsque l'utilisateur déplace son doigt sur l'écran, ainsi que sur des UI visuelles. Par exemple, vous pouvez générer un retour haptique répété lorsque l'utilisateur déplace son doigt sur l'UI de l'horloge avec des éléments d'UI de coche virtuelle.
Les effets des textures haptiques virtuelles sont destinés à être répétés. Cela rend souvent l'énergie perçue supérieure à l'amplitude (lorsque l'effet est appelé sans répétition ou une seule fois). Par conséquent, les constantes haptiques conçues pour les textures haptiques virtuelles (comme CLOCK_TICK
ou TEXT_HANDLE_MOVE
) doivent être subtiles pour donner la sensation de mouvement via des signaux répétés.
Figure 5. Effets haptiques pour simuler une texture virtuelle
Inclure des sentiments
Pour inclure un sentiment positif ou négatif dans les effets haptiques, appliquez une sensation plus forte au sentiment négatif afin d'attirer l'attention de l'utilisateur.
Figure 6. Effets haptiques avec émotion
Évitez les bruits ambiants de longues vibrations.
Pour éviter le bruit sonore provenant d'une longue vibration du retour haptique d'attention, accélérez le modèle de manière fluide pour créer un effet d'accélération. Pour ce faire, utilisez createWaveform(long[] timings, int[] amplitudes, int repeat)
.
Figure 7. Effet de montée progressive des vibrations