Сопоставление констант HAL-API, представленное в разделе Сопоставление констант между HAL и API, основано на настоятельно рекомендуемых принципах UX-дизайна. Принципы UX-дизайна определяют, как, когда и что использовать при работе с API тактильной отдачи Android. Подробнее об этих принципах можно узнать из статьи Advanced Haptics: The When, What, and How of New Haptic APIs.
Рисунок 1. Сопоставление констант HAL-API: дискретная модель
Как выбрать тактильные эффекты
По силе вибрации (VibrationEffect)
EFFECT_CLICK – это оптимальное значение для начала настройки силы тактильного отклика (VibrationEffect): оно находится посередине между легким откликом EFFECT_TICK и сильным откликом EFFECT_HEAVY_CLICK. Начните с EFFECT_CLICK, а затем увеличьте или уменьшите концептуальную энергию, добавив силу с помощью EFFECT_HEAVY_CLICK или уменьшив ее с помощью EFFECT_TICK. Помните, что сочетание "EFFECT_DOUBLE_CLICK" создает наибольшую концептуальную энергию, поскольку повторяется.
Рисунок 2. Настройки силы вибрации
По событиям ввода и элементам интерфейса (HapticFeedbackConstants)
Если ваша цель связана с определенными событиями ввода (например, долгим нажатием или пролистыванием) или элементами интерфейса (например, клавиатурой), найдите предопределенные константы вибрации в HapticFeedbackConstants.
Название каждой константы относится к определенному варианту использования, например KEYBOARD_PRESS или LONG_PRESS.
Имитация нажатия кнопок
Тактильный виброотклик при вводе (виртуальные софт-кнопки) может имитировать нажатие физических кнопок.
Входное событие: попарное взаимодействие
Событие клика имитирует поведение механической кнопки, которая сначала нажимается, а затем отпускается. Ощущаемая энергия механического импульса от нажатия кнопки выше, чем от ее отпускания. Поэтому виброотклик при нажатии на кнопку сильнее, чем при ее отпускании.
Рисунок 3. Тактильные эффекты по событию двоичного ввода
Сила вибрации при нажатии кнопки.
События ввода с более коротким и легким взаимодействием связаны с более легкой тактильной обратной связью. События ввода, которые требуют более длительного и глубокого взаимодействия, сопровождаются более сильной вибрацией.
Рисунок 4. Тактильные эффекты по доступности
Симулировать виртуальную текстуру в событии ввода жеста
Ввод на основе жестов (например, прокрутка) может быть связан с виртуальными тактильными текстурами, когда палец перемещается по экрану вместе с визуальными элементами интерфейса. Например, может генерироваться повторяющийся виброотклик, когда палец перемещается по интерфейсу часов с виртуальными элементами интерфейса в виде отметок.
Эффекты для виртуальных тактильных текстур должны повторяться. В результате воспринимаемая энергия может быть выше амплитуды (если эффект называется без повторения или только один раз). Поэтому константы тактильных ощущений, предназначенные для виртуальных тактильных текстур (например, CLOCK_TICK или TEXT_HANDLE_MOVE), должны быть незначительными, чтобы создавать ощущение движения с помощью повторяющихся сигналов.
Рисунок 5. Тактильные эффекты для имитации виртуальной текстуры
Включить тональность
Чтобы передать положительные или отрицательные эмоции, используйте более сильные вибрации для отрицательных эмоций, чтобы привлечь внимание пользователя.
Рисунок 6. Тактильные эффекты с учетом настроения
Избегайте слышимого шума от долгой вибрации
Чтобы избежать слышимого шума от длительной вибрации для тактильных сигналов внимания, плавно ускорьте шаблон, чтобы создать эффект нарастания. Для этого используйте createWaveform(long[] timings, int[] amplitudes, int repeat).
Рисунок 7. Эффект нарастания долгой вибрации