На этой странице представлены рекомендуемые сопоставления между общедоступными константами HAL и константами API. Если оцениваемое оборудование не реализует константы HAL, обновите резервные шаблоны, описанные на странице «Реализация констант и примитивов», чтобы генерировать аналогичные выходные данные. Сопоставлению помогают две разные модели по умолчанию:
Дискретная модель (простая)
- Амплитуда является ключевой переменной этой модели. Каждый объект в HAL представляет собой различную тактильную амплитуду.
- Эта модель представляет собой минимальное требование, необходимое для реализации базового тактильного UX.
- Более продвинутый тактильный UX требует усовершенствованного оборудования и продвинутой модели (непрерывной модели).
Непрерывная модель (расширенная)
- Текстура и амплитуда являются ключевыми переменными этой модели. Каждый объект в HAL представляет разные тактильные текстуры. Амплитуда каждого объекта HAL контролируется масштабным коэффициентом (
S
). - Для этой модели требуется современное оборудование. Если OEM-производители хотят использовать расширенный тактильный пользовательский интерфейс с
VibrationEffect.Composition
(для наилучшего использования новейших тактильных API), рекомендуется реализовать свое оборудование с использованием этой модели.
- Текстура и амплитуда являются ключевыми переменными этой модели. Каждый объект в HAL представляет разные тактильные текстуры. Амплитуда каждого объекта HAL контролируется масштабным коэффициентом (
Дискретная модель
Рекомендуется сопоставить все общедоступные константы, представленные в API, с соответствующими константами HAL. Чтобы начать этот процесс, выясните, сколько тактильных сигналов с дискретной амплитудой устройство может определить в HAL. Конкретный вопрос, построенный вокруг этого понятия, выглядит следующим образом: сколько одноимпульсных тактильных эффектов с ощутимой человеком разницей амплитуды можно определить в моем телефоне? Ответ на этот вопрос определяет отображение.
Определение констант HAL — процесс, зависящий от оборудования. Например, телефон начального уровня может иметь только аппаратные возможности для создания одного тактильного сигнала. Устройства с более совершенными аппаратными компонентами создают более широкий диапазон дискретных уровней амплитуды и могут определять несколько тактильных сигналов в HAL. Сопоставление констант HAL-API берет константу HAL (используя среднюю амплитуду в качестве базовой линии), а затем на ее основе упорядочивает более сильные или более слабые эффекты.
Рисунок 14. Диапазон констант HAL по амплитуде
Когда количество констант HAL с дискретной амплитудой определено, пришло время сопоставить константы HAL и API с количеством констант HAL. Этот процесс сопоставления может сегментировать одну импульсную константу API на три дискретные группы уровней амплитуды. Способ сегментации констант API основан на принципах UX для сопровождения входных событий. Дополнительную информацию см. в разделе «Дизайн Haptics UX» .
Рисунок 15. Сопоставление констант HAL-API: дискретная модель
Если ваше устройство поддерживает только две константы HAL с дискретными амплитудами, рассмотрите возможность объединения констант HAL уровня средней и высокой амплитуды. Примером этого понятия на практике может быть сопоставление EFFECT_CLICK
и EFFECT_HEAVY_CLICK
с одной и той же константой HAL, которая будет константой HAL уровня средней амплитуды. Если ваше устройство поддерживает только одну константу HAL с дискретной амплитудой, рассмотрите возможность объединения всех трех уровней в один.
Непрерывная модель
Непрерывная модель с масштабируемостью амплитуды может применяться для определения констант HAL. Коэффициент масштабирования ( S
) можно применить к константам HAL (например, HAL_H0
, HAL_H1
) для создания масштабированного HAL ( HAL_H0
x S
). В этом случае масштабированный HAL сопоставляется для определения констант API ( HAL_H0
x S1
= H0S1
= EFFECT_TICK
), как показано на рисунке 16. Используя масштабируемость амплитуды непрерывной модели, устройство может хранить небольшое количество констант HAL с отличительными текстурами и добавлять вариации амплитуды, регулируя масштабный коэффициент ( S
). Производители устройств могут определить количество констант HAL в зависимости от того, сколько различных тактильных текстур они хотят предоставить.
Рисунок 16. Диапазон констант HAL по текстуре (HAL_H0) и шкале амплитуды (S)
Рисунок 17. Сопоставление констант HAL-API: непрерывная модель.
В непрерывной модели разные константы HAL представляют собой разные тактильные текстуры , а не разные амплитуды; масштабный коэффициент ( S
) позволяет настроить амплитуду. Однако, поскольку восприятие текстуры (например, резкость) связано с восприятием продолжительности и амплитуды, рекомендуется объединить текстуру и масштабный коэффициент (в процессе проектирования отображения HAL-API).
На рисунке 18 показано сопоставление констант путем увеличения вариации от одной HAL до множества констант API с масштабируемостью амплитуды.
Рисунок 18. Увеличение вариации с масштабированием амплитуды
Для всех масштабируемых констант API, таких как PRIMITIVE_TICK
и PRIMITIVE_CLICK
в VibrationEffect.Composition
, уровень энергии константы API зависит от параметра float scale
, когда константа API объявляется через addPrimitive(int primitiveID, float scale, int delay)
. PRIMITIVE_TICK
и PRIMITIVE_CLICK
могут быть разработаны с четким различием, используя разные константы HAL. Этот подход рекомендуется, если вы хотите добавить вариации к текстуре .