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

Сопоставление констант HAL-API, представленное в разделе «Сопоставление констант между HAL и API», основано на настоятельно рекомендуемых принципах UX-дизайна. Принципы UX-дизайна определяют основные принципы того, как, когда и что использовать при использовании API тактильных функций Android. Подробнее об этих основополагающих принципах см. в статье «Расширенные тактильные функции: когда, что и как использовать новые API тактильных функций» .

Постоянное отображение

Рисунок 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. Тактильные эффекты от двоичного входного события

Тактильная сила: возможность нажатия кнопки

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

Press Affordance Haptics

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

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

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

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

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

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

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

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

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

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

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

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

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

Рисунок 7. Длительный эффект нарастания вибрации