En esta página, se presentan las asignaciones recomendadas entre constantes de HAL públicas y constantes de API. Si el hardware evaluado no implementa las constantes de HAL, actualiza los patrones de resguardo que se describen en la página Implementa constantes y primitivas para generar resultados similares. La asignación se realiza con la ayuda de dos modelos predeterminados diferentes:
Modelo discreto (simple)
- La amplitud es la variable clave de este modelo. Cada entidad del HAL representa una amplitud táctil diferente.
- Este modelo es un requisito mínimo necesario para implementar la UX táctil básica.
- Una UX táctil más avanzada requiere hardware y un modelo avanzados (modelo continuo).
Modelo continuo (avanzado)
- La textura y la amplitud son las variables clave de este modelo. Cada entidad en el HAL representa diferentes texturas táctiles. El factor de escala (
S
) controla la amplitud de cada entidad de HAL. - Este modelo requiere hardware avanzado. Si los OEMs quieren usar una UX táctil avanzada con
VibrationEffect.Composition
(para aprovechar al máximo las APIs de tecnología táctil más recientes), se recomienda implementar su hardware con este modelo.
- La textura y la amplitud son las variables clave de este modelo. Cada entidad en el HAL representa diferentes texturas táctiles. El factor de escala (
Modelo discreto
Se recomienda asignar todas las constantes públicas proporcionadas en la API con las constantes de HAL adecuadas. Para comenzar este proceso, averigua cuántas formas de onda táctiles con amplitud discreta puede definir el dispositivo en la HAL. Una pregunta específica que se estructura en torno a esa noción se ve de la siguiente manera: ¿Cuántos efectos táctiles de un solo impulso con diferencias de amplitud perceptibles por el ser humano se pueden definir en mi teléfono? La respuesta a esta pregunta determina la asignación.
La definición de constantes de HAL es un proceso que depende del hardware. Por ejemplo, un teléfono de entrada podría tener solo las capacidades de hardware para producir una sola forma de onda táctil. Los dispositivos con componentes de hardware más avanzados producen un rango más amplio de niveles de amplitud discretos y pueden definir varias formas de onda táctiles en el HAL. La asignación de constantes de la API de HAL toma la constante de HAL (con la amplitud media como referencia) y, luego, organiza los efectos más fuertes o más débiles a partir de allí.
Figura 14: Rango constante de HAL por amplitud
Cuando se define la cantidad de constantes de HAL con amplitud discreta, es hora de asignar las constantes de HAL y de la API según la cantidad de constantes de HAL. Este proceso de asignación puede segmentar una sola constante de API de impulso en hasta tres grupos discretos de niveles de amplitud. La forma en que se segmentan las constantes de la API se basa en los principios de la UX para acompañar los eventos de entrada. Para obtener más información, consulta Diseño de UX táctil.
Figura 15: Asignación de constantes de HAL a la API: Modelo discreto
Si tu dispositivo solo admite dos constantes de HAL con amplitudes discretas, considera combinar las constantes de HAL de nivel de amplitud media y alta. Un ejemplo de esta noción en la práctica sería asignar EFFECT_CLICK
y EFFECT_HEAVY_CLICK
a la misma constante de HAL, que sería la constante de HAL de nivel de amplitud media. Si tu dispositivo solo admite una constante de HAL con amplitud discreta, considera combinar los tres niveles en uno.
Modelo continuo
El modelo continuo con escalabilidad de amplitud se puede aplicar para definir constantes de HAL. Se puede aplicar un factor de escala (S
) a las constantes de HAL (por ejemplo, HAL_H0
, HAL_H1
) para producir el HAL ajustado (HAL_H0
× S
). En este caso, el HAL ajustado se asigna para definir constantes de API (HAL_H0
× S1
= H0S1
= EFFECT_TICK
), como se muestra en la figura 16. Con el uso de la escalabilidad de amplitud del modelo continuo, un dispositivo puede almacenar una pequeña cantidad de constantes de HAL con texturas distintivas y agregar variaciones de amplitud ajustando el factor de escala (S
). Los fabricantes de dispositivos pueden definir la cantidad de constantes de HAL según la cantidad de texturas táctiles diferentes que quieran proporcionar.
Figura 16: Rango constante de HAL por textura (HAL_H0) y escala de amplitud (S)
Figura 17: Asignación de constantes de HAL a la API: Modelo continuo
En el modelo continuo, diferentes constantes de HAL representan diferentes texturas táctiles en lugar de diferentes amplitudes. El factor de escala (S
) puede configurar la amplitud. Sin embargo, como la percepción de la textura (por ejemplo, la nitidez) se relaciona con la percepción de la duración y la amplitud, se recomienda combinar la textura y el factor de escala (en el proceso de diseño de la asignación de la API de HAL).
En la Figura 18, se ilustra la asignación constante aumentando la variación de un HAL a muchas constantes de API con escalabilidad de amplitud.
Figura 18: Aumenta la variación con la escalabilidad de amplitud
Para todas las constantes de API escalables, como PRIMITIVE_TICK
y PRIMITIVE_CLICK
en VibrationEffect.Composition
, el nivel de energía de la constante de API depende del parámetro float scale
cuando la constante de API se declara a través de addPrimitive(int primitiveID, float scale,
int delay)
. PRIMITIVE_TICK
y PRIMITIVE_CLICK
se pueden diseñar con una distinción clara mediante el uso de diferentes constantes de HAL. Este enfoque se recomienda si
deseas agregar variación a la textura.