На этой странице представлены рекомендуемые сопоставления между общедоступными константами HAL и константами API. Если оцениваемое оборудование не реализует константы HAL, обновите шаблоны резервного копирования, описанные на странице «Реализация констант и примитивов», чтобы получить аналогичные результаты. Сопоставление осуществляется с помощью двух различных моделей по умолчанию:
Дискретная модель (простая)
- Амплитуда является ключевой переменной этой модели. Каждый элемент в HAL представляет собой различную амплитуду тактильных ощущений.
- Эта модель представляет собой минимальное требование, необходимое для реализации базового тактильного пользовательского интерфейса.
- Для более совершенного тактильного пользовательского интерфейса требуется современное оборудование и усовершенствованная модель (непрерывная модель).
Непрерывная модель (расширенная)
- Текстура и амплитуда являются ключевыми переменными этой модели. Каждый объект в HAL представляет собой различную тактильную текстуру. Амплитуда каждого объекта HAL контролируется масштабным коэффициентом (
S). - Для этой модели требуется современное оборудование. Если производители оборудования хотят использовать расширенные возможности тактильной обратной связи с помощью
VibrationEffect.Composition(для наилучшего использования новейших API тактильной обратной связи), рекомендуется внедрять в свое оборудование эту модель.
- Текстура и амплитуда являются ключевыми переменными этой модели. Каждый объект в HAL представляет собой различную тактильную текстуру. Амплитуда каждого объекта HAL контролируется масштабным коэффициентом (
Дискретная модель
Рекомендуется сопоставить все общедоступные константы, предоставляемые в API, с соответствующими константами HAL. Для начала этого процесса выясните, сколько тактильных сигналов с дискретной амплитудой устройство может определить в HAL. Конкретный вопрос, построенный вокруг этой идеи, выглядит так: Сколько одиночных импульсных тактильных эффектов с воспринимаемыми человеком различиями в амплитуде можно определить в моем телефоне? Ответ на этот вопрос определяет сопоставление.
Определение констант HAL — это процесс, зависящий от аппаратного обеспечения. Например, телефон начального уровня может обладать аппаратными возможностями только для воспроизведения одной тактильной волны. Устройства с более совершенными аппаратными компонентами воспроизводят более широкий диапазон дискретных уровней амплитуды и могут определять несколько тактильных волн в HAL. При сопоставлении констант HAL-API используется константа HAL (с использованием средней амплитуды в качестве базового значения), а затем на её основе определяются более сильные или слабые эффекты.

Рисунок 1. Диапазон постоянных значений HAL в зависимости от амплитуды.
Когда определено количество констант HAL с дискретной амплитудой, настало время сопоставить константы HAL и API по количеству констант HAL. Этот процесс сопоставления позволяет разделить одну константу API импульса на три дискретные группы уровней амплитуды. Способ сегментации констант API основан на принципах UX для сопровождающих входных событий. Для получения дополнительной информации см. раздел «Дизайн UX тактильной обратной связи» .

Рисунок 2. Сопоставление констант HAL-API: дискретная модель.
Если ваше устройство поддерживает только две константы HAL с дискретными амплитудами, рассмотрите возможность объединения констант HAL среднего и высокого уровней амплитуды. Примером практического применения может служить сопоставление EFFECT_CLICK и EFFECT_HEAVY_CLICK с одной и той же константой HAL, которая будет константой HAL среднего уровня амплитуды. Если ваше устройство поддерживает только одну константу HAL с дискретной амплитудой, рассмотрите возможность объединения всех трех уровней в один.
Непрерывная модель
Непрерывная модель с масштабируемостью амплитуды может быть применена для определения констант HAL. К константам HAL (например, HAL_H0 , HAL_H1 ) может быть применен коэффициент масштабирования ( S ) для получения масштабированного HAL ( HAL_H0 x S ). В этом случае масштабированный HAL сопоставляется с определением констант API ( HAL_H0 x S1 = H0S1 = EFFECT_TICK ), как показано на рисунке 3. Используя масштабируемость амплитуды непрерывной модели, устройство может хранить небольшое количество констант HAL с различными текстурами и добавлять вариации амплитуды, регулируя коэффициент масштабирования ( S ). Производители устройств могут определять количество констант HAL в зависимости от того, сколько различных тактильных текстур они хотят предоставить.

Рисунок 3. Диапазон постоянных HAL в зависимости от текстуры (HAL_H0) и амплитудной шкалы (S).

Рисунок 4. Сопоставление констант HAL-API: непрерывная модель.
В непрерывной модели различные константы HAL представляют собой разные тактильные текстуры , а не разные амплитуды; масштабный коэффициент ( S ) может настраивать амплитуду. Однако, поскольку восприятие текстуры (например, резкости) связано с восприятием длительности и амплитуды, рекомендуется комбинировать текстуру и масштабный коэффициент (в процессе проектирования сопоставления HAL-API).
На рисунке 5 показано постоянное отображение путем увеличения вариации от одной константы HAL до множества констант API с масштабируемостью амплитуды.


Рисунок 5. Увеличение вариации с масштабируемостью амплитуды.
Для всех масштабируемых констант API, таких как PRIMITIVE_TICK и PRIMITIVE_CLICK в VibrationEffect.Composition , уровень энергии константы API зависит от параметра float scale , когда константа API объявляется с помощью addPrimitive(int primitiveID, float scale, int delay) . PRIMITIVE_TICK и PRIMITIVE_CLICK можно четко различать, используя разные константы HAL. Этот подход рекомендуется, если вы хотите добавить вариативность текстуре .