햅틱 체크리스트의 2단계 에서 도입된 HAL-API 상수 매핑은 적극 권장되는 UX 디자인 원칙에 따라 구동됩니다. UX 디자인 원칙은 Android 햅틱 API를 사용할 때 어떻게, 언제, 무엇을 사용할지에 대한 기초를 정의합니다. 이러한 기본 원칙에 대해 자세히 알아보려면 고급 햅틱: 새로운 햅틱 API의 시기, 대상 및 방법을 참조하세요.
그림 1. HAL-API 상수 매핑: 이산 모델
햅틱 효과 선택
햅틱 강도로 ( VibrationEffect
)
EFFECT_CLICK
는 원하는 햅틱 강도( VibrationEffect
)를 결정할 때 시작하기에 가장 좋은 위치입니다. EFFECT_TICK의 "가벼운" 햅틱과 EFFECT_TICK
의 "무거운" 햅틱 사이의 EFFECT_HEAVY_CLICK
입니다. EFFECT_CLICK 로 시작하여 EFFECT_CLICK
로 강도를 추가하거나 EFFECT_HEAVY_CLICK
로 강도를 EFFECT_TICK
으로써 개념 에너지를 높이거나 낮출 수 있습니다. EFFECT_DOUBLE_CLICK
는 반복되기 때문에 최고의 개념 에너지를 전달한다는 점을 기억하세요.
그림 2. 햅틱 강도 설정
입력 이벤트 및 UI 요소별( HapticFeedbackConstants
)
목표가 특정 입력 이벤트(예: 길게 누르기, 스와이프) 또는 UI 요소(예: 키보드)와 HapticFeedbackConstants
에서 사전 정의된 햅틱 상수를 찾으세요. 각 상수의 이름은 KEYBOARD_PRESS
또는 LONG_PRESS
와 같은 특정 사용 사례를 나타냅니다.
실제 버튼 누름 이벤트 시뮬레이션
입력 이벤트(가상 소프트 버튼)의 터치 햅틱 피드백은 물리적 개체(예: 기계적 하드 버튼)를 사용하여 버튼 누르기를 시뮬레이션할 수 있습니다.
입력 이벤트: 쌍별 상호 작용 흐름
클릭 이벤트 는 눌렀다 가 놓는 기계식 버튼의 동작을 시뮬레이션하도록 설계되었습니다. 버튼 누름으로 인한 기계적 충격의 인지된 에너지는 버튼 해제의 에너지보다 높습니다. 따라서 버튼 누름에 대한 햅틱 피드백은 버튼 해제에 대한 햅틱 피드백보다 더 강력합니다.
그림 3. 바이너리 입력 이벤트에 의한 햅틱 효과
햅틱 강도: 버튼 누름의 어포던스
참여가 더 짧고 가벼운 입력 이벤트는 더 가벼운 햅틱과 연결됩니다. 더 길고 더 깊이 관여하는 입력 이벤트는 더 강력한 햅틱과 연결됩니다.
그림 4. 어포던스에 따른 햅틱 효과
제스처 입력 이벤트에서 가상 텍스처 시뮬레이션
손가락이 화면에서 움직이는 동안 제스처 기반 입력(예: 스크러빙 또는 스크롤)은 시각적 UI와 함께 가상 햅틱 텍스처와 정렬될 수 있습니다. 예를 들어 손가락이 시계 주위를 움직이는 동안 반복되는 햅틱 피드백 생성 가상 눈금 표시가 있는 UI UI 요소.
가상 햅틱 텍스처에 대한 효과는 반복되어야 합니다. 이것은 종종 인지된 에너지를 진폭보다 높게 만듭니다(효과가 반복 없이 호출되거나 한 번만 호출될 때). 이 때문에 가상 햅틱 텍스처용으로 설계된 햅틱 상수(예: CLOCK_TICK
또는 TEXT_HANDLE_MOVE
)는 반복되는 신호를 통해 움직이는 느낌을 제공하기 위해 미묘 해야 합니다.
그림 5. 가상 텍스처를 시뮬레이션하기 위한 햅틱 효과
감정을 포함하여
햅틱 효과에 긍정적이거나 부정적인 감정을 포함하려면 부정적인 감정에 더 강한 감각을 적용하여 사용자의 관심을 끌 수 있습니다.
그림 6. 감정에 따른 햅틱 효과
긴 진동으로 인한 가청 소음 방지
어텐션 햅틱을 위한 긴 진동으로 인한 가청 노이즈를 방지하려면 패턴을 부드럽게 가속하여 램프업 효과를 만듭니다. createWaveform(long[] timings, int[] amplitudes, int repeat)
를 사용하여 이 작업을 수행합니다.
그림 7. 긴 진동 증가 효과