Esta página apresenta os mapeamentos recomendados entre constantes públicas de HAL e constantes de API. Se o hardware avaliado não implementar as constantes de HAL, então atualize os padrões de fallback descritos na página Implementar constantes e primitivos para gerar saídas semelhantes. O mapeamento é assistido por dois modelos padrão diferentes:
Modelo discreto (simples)
- A amplitude é a variável principal desse modelo. Cada entidade no HAL representa uma amplitude tátil diferente.
- Esse modelo é um requisito mínimo necessário para implementar a UX tátil básica.
- Uma UX tátil mais avançada exige hardware e um modelo avançado (modelo contínuo).
Modelo contínuo (avançado)
- A textura e a amplitude são as variáveis principais desse modelo. Cada entidade no HAL representa texturas táteis diferentes. A amplitude de cada entidade HAL é controlada pelo fator de escalonamento (
S). - Esse modelo exige hardware avançado. Se os OEMs quiserem usar a UX tátil avançada
com
VibrationEffect.Composition(para o melhor uso das APIs de retorno tátil mais recentes), recomendamos implementar o hardware usando esse modelo.
- A textura e a amplitude são as variáveis principais desse modelo. Cada entidade no HAL representa texturas táteis diferentes. A amplitude de cada entidade HAL é controlada pelo fator de escalonamento (
Modelo discreto
Recomendamos mapear todas as constantes públicas fornecidas na API com as constantes de HAL apropriadas. Para iniciar esse processo, descubra quantas formas de onda táteis com amplitude discreta o dispositivo pode definir no HAL. Uma pergunta específica estruturada em torno dessa noção é assim: Quantos efeitos táteis de impulso único com diferenças de amplitude perceptíveis ao ser humano podem ser definidos no meu smartphone? A resposta a essa pergunta determina o mapeamento.
A definição de constantes de HAL é um processo dependente de hardware. Por exemplo, um smartphone básico pode ter apenas os recursos de hardware para produzir uma única forma de onda tátil. Dispositivos com componentes de hardware mais avançados produzem uma variedade maior de níveis de amplitude discreta e podem definir várias formas de onda táteis no HAL. O mapeamento constante HAL-API usa a constante HAL (usando a amplitude média como linha de base) e, em seguida, organiza efeitos mais fortes ou mais fracos.
Figura 1. Intervalo constante de HAL por amplitude.
Quando o número de constantes de HAL com amplitude discreta é definido, é hora de mapear as constantes de HAL e API pelo número de constantes de HAL. Esse processo de mapeamento pode segmentar uma única constante de API de impulso em até três grupos discretos de níveis de amplitude. A maneira como as constantes de API são segmentadas é baseada em princípios de UX para eventos de entrada de acompanhamento. Para mais informações, consulte Design de UX retorno tátil.
Figura 2. Mapeamento constante HAL-API: modelo discreto.
Se o dispositivo oferecer suporte a apenas duas constantes de HAL com amplitudes discretas, considere mesclar as constantes de HAL de nível de amplitude média e alta. Um exemplo dessa noção na prática seria mapear EFFECT_CLICK e EFFECT_HEAVY_CLICK para a mesma constante de HAL, que seria a constante de HAL de nível de amplitude média. Se o dispositivo oferecer suporte a apenas uma constante de HAL com amplitude discreta, considere mesclar todos os três níveis em um.
Modelo contínuo
O modelo contínuo com escalonabilidade de amplitude pode ser aplicado para definir constantes de HAL. Um fator de escalonamento (S) pode ser aplicado às constantes de HAL (por exemplo, HAL_H0, HAL_H1) para produzir o HAL escalonado (HAL_H0 x S). Nesse caso, o HAL escalonado é mapeado para definir constantes de API (HAL_H0 x S1 = H0S1 = EFFECT_TICK), conforme mostrado na Figura 3. Ao usar a escalonabilidade de amplitude do modelo contínuo, um dispositivo pode armazenar um pequeno número de constantes de HAL com texturas distintas e adicionar variações de amplitude ajustando o fator de escalonamento (S). Os fabricantes de dispositivos podem definir o número de constantes de HAL com base em quantas texturas táteis diferentes eles querem fornecer.
Figura 3. Intervalo constante de HAL por textura (HAL_H0) e escala de amplitude (S).
Figura 4. Mapeamento constante HAL-API: modelo contínuo.
No modelo contínuo, diferentes constantes de HAL representam diferentes texturas táteis, em vez de amplitudes diferentes. O fator de escalonamento (S) pode configurar a amplitude. No entanto, como a percepção da textura (por exemplo, nitidez) está relacionada à percepção da duração e da amplitude, recomendamos combinar a textura e o fator de escalonamento (no processo de design do mapeamento HAL-API).
A Figura 5 ilustra o mapeamento constante, aumentando a variação de uma constante de HAL para muitas constantes de API com escalonabilidade de amplitude.
Figura 5. Aumento da variação com escalonabilidade de amplitude.
Para todas as constantes de API escalonáveis, como PRIMITIVE_TICK e PRIMITIVE_CLICK em
VibrationEffect.Composition,
o nível de energia da constante de API depende do parâmetro float scale quando
a constante de API é declarada por addPrimitive(int primitiveID, float scale,
int delay). PRIMITIVE_TICK e PRIMITIVE_CLICK podem ser projetados com uma distinção clara usando diferentes constantes de HAL. Essa abordagem é recomendada se você quiser adicionar variação à textura.