Diseño de UX táctil

La asignación de constantes de HAL-API que se presentó en Asigna constantes entre HAL y la API se basa en principios de diseño de UX altamente recomendados. Los principios de diseño de UX definen la base de cómo, cuándo y qué usar cuando se utilizan las APIs de hápticos de Android. Consulta Hápticos avanzados: Cuándo, qué y cómo usar las nuevas APIs de hápticos para obtener más información sobre estos principios fundamentales.

Asignación constante

Figura 1: Asignación de constantes de HAL-API: modelo discreto

Selecciona efectos táctiles

Por intensidad de la respuesta táctil (VibrationEffect)

EFFECT_CLICK es el mejor punto de partida para determinar la intensidad háptica que prefieres (VibrationEffect): es la mediana entre las hápticas "leves" de EFFECT_TICK y las hápticas "intensas" de EFFECT_HEAVY_CLICK. Si comienzas con EFFECT_CLICK, puedes aumentar o disminuir la energía conceptual agregando fuerza con EFFECT_HEAVY_CLICK o disminuyéndola con EFFECT_TICK. Ten en cuenta que EFFECT_DOUBLE_CLICK ofrece la mayor energía conceptual porque se repite.

Intensidad de la respuesta táctil

Figura 2: Configuración de intensidad de la respuesta háptica

A través de eventos de entrada y elementos de la IU (HapticFeedbackConstants)

Si tu objetivo está asociado con eventos de entrada específicos (como mantener presionado o deslizar el dedo) o elementos de la IU (como el teclado), busca constantes hápticas predefinidas en HapticFeedbackConstants. El nombre de cada constante hace referencia a casos de uso específicos, como KEYBOARD_PRESS o LONG_PRESS.

Simula eventos de presión de botones del mundo real

La respuesta háptica táctil de los eventos de entrada (botones virtuales suaves) puede simular las pulsaciones de botones con entidades físicas (como los botones mecánicos duros).

Evento de entrada: Flujo de interacción por pares

El evento de clic está diseñado para simular el comportamiento de un botón mecánico, que se presiona y, luego, se suelta. La energía percibida del impulso mecánico de la presión de un botón es mayor que la de la liberación de un botón. Por lo tanto, la respuesta táctil al presionar los botones es más fuerte que la respuesta táctil al soltarlos.

Presiona el evento y suelta la respuesta háptica

Figura 3: Efectos táctiles por evento de entrada binario

Intensidad de la respuesta háptica: La capacidad de respuesta de la presión del botón

Los eventos de entrada con una participación más corta y ligera se asocian con una respuesta háptica más ligera. Los eventos de entrada con una participación más prolongada y profunda se asocian con una respuesta háptica más intensa.

Tecnología háptica de presión

Figura 4: Efectos táctiles por elemento visual

Simula la textura virtual en el evento de entrada de gestos

Las entradas basadas en gestos (como el desplazamiento rápido o el desplazamiento) se pueden alinear con texturas hápticas virtuales mientras el dedo se mueve por la pantalla junto con las IU visuales, por ejemplo, generando comentarios hápticos repetidos mientras un dedo se mueve por la IU del reloj con elementos de IU de marcas virtuales.

Los efectos de las texturas hápticas virtuales están diseñados para repetirse. Esto suele hacer que la energía percibida sea mayor que la amplitud (cuando el efecto se llama sin repetición o solo una vez). Por este motivo, las constantes hápticas diseñadas para texturas hápticas virtuales (como CLOCK_TICK o TEXT_HANDLE_MOVE) deben ser sutiles para proporcionar la sensación de movimiento a través de indicaciones repetidas.

Textura virtual

Figura 5: Efectos táctiles para simular texturas virtuales

Incluir opiniones

Para incluir opiniones positivas o negativas en los efectos hápticos, aplica una sensación más fuerte a las opiniones negativas para captar la atención del usuario.

Opinión táctil

Figura 6: Efectos táctiles con sentimiento

Evita el ruido audible de la vibración prolongada

Para evitar el ruido audible de la vibración prolongada en la háptica de atención, acelera el patrón de forma gradual para crear un efecto de aceleración. Para ello, usa createWaveform(long[] timings, int[] amplitudes, int repeat).

Vibración larga

Figura 7: Efecto de aumento gradual de la vibración prolongado