Тактильный UX-дизайн

Сопоставление констант 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 .

Имитация реальных событий нажатия кнопок

Тактильная обратная связь при нажатии на события ввода (виртуальные программные кнопки) может имитировать нажатия кнопок с использованием физических объектов (например, механических жестких кнопок).

Входное событие: поток парного взаимодействия

Событие click разработано для имитации поведения механической кнопки, которая нажимается и затем отпускается . Воспринимаемая энергия механического импульса от нажатия кнопки выше, чем от отпускания кнопки. Поэтому тактильная обратная связь для нажатия кнопки сильнее тактильной обратной связи для отпускания кнопки.

Пресс-релизы мероприятий Haptics

Рисунок 3. Тактильные эффекты от двоичного входного события

Сила тактильного ощущения: возможность нажатия кнопки

События ввода с более коротким и легким взаимодействием связаны с более легкой тактильной чувствительностью. События ввода с более длинным и глубоким взаимодействием связаны с более сильной тактильной чувствительностью.

Пресса Доступность Тактильные ощущения

Рисунок 4. Тактильные эффекты по возможностям

Имитация виртуальной текстуры в событии ввода жеста

Ввод на основе жестов (например, прокрутка или перелистывание) можно совмещать с виртуальными тактильными текстурами при перемещении пальца по экрану, а также с визуальными пользовательскими интерфейсами, например, создавая повторяющуюся тактильную обратную связь при перемещении пальца по пользовательскому интерфейсу часов с элементами пользовательского интерфейса в виде виртуальных делений.

Эффекты для виртуальных тактильных текстур должны повторяться. Это часто делает воспринимаемую энергию выше амплитуды (когда эффект вызывается без повторения или только один раз ). Из-за этого тактильные константы, разработанные для виртуальных тактильных текстур (например, CLOCK_TICK или TEXT_HANDLE_MOVE ), должны быть тонкими , чтобы обеспечить ощущение движения через повторяющиеся сигналы.

Виртуальная Текстура

Рисунок 5. Тактильные эффекты для имитации виртуальной текстуры

Включить настроения

Чтобы включить позитивные или негативные эмоции в тактильные эффекты, примените более сильные ощущения к негативным эмоциям, чтобы привлечь внимание пользователя.

Тактильные ощущения

Рисунок 6. Тактильные эффекты с настроением

Избегайте слышимого шума от длительной вибрации

Чтобы избежать слышимого шума от длительной вибрации для тактильных ощущений внимания, плавно ускоряйте шаблон, чтобы создать эффект нарастания. Сделайте это с помощью createWaveform(long[] timings, int[] amplitudes, int repeat) .

Длительная вибрация

Рисунок 7. Эффект длительного нарастания вибрации