햅틱의 가장 기본적인 사용 사례 중 하나는 사용자에게 피드백을 제공하는 것입니다. 상호작용한다는 것입니다. 시간 선택 도구, 가상 키보드의 키 누름, 텍스트 선택 사항은 햅틱 반응의 좋은 사용 사례의 일반적인 예입니다. 자세한 내용은 햅틱 적용 시기와 방법에 관한 정보는 햅틱 설계 원칙
이 페이지에서는 햅틱 반응을 제공하는 세 가지 방법을 설명합니다.
View
을 사용합니다(권장). 이 접근 방식은 행동지향적이기 때문에 가장 폭넓게 지원하며VIBRATE
권한이 필요하지 않습니다.- 사전 정의된
VibrationEffect
사용 이 접근 방식은 유연성이 더 뛰어나지만 단점도 있습니다. - 프리미티브로 고급 컴포지션을 사용합니다. 이 메서드는 최신 버전이며 더 유연하지만 특정 기기가 필요합니다. 도움이 될 수 있습니다
이러한 메서드는 기기 수준에서 정의된 프리미티브를 사용하여 높은 품질의 사용 중인 기기에 맞춤화된 피드백을 제공합니다.
모든 햅틱 반응 방법은 기본값입니다.
View
구성요소를 사용하여 햅틱 반응 생성
View.performHapticFeedback
메서드를 사용하여 햅틱 반응을 생성합니다. 이
HapticFeedbackConstants
에 의해 정의된 햅틱 상수는
햅틱 효과의 유형이 아닌 애플리케이션에서 사용하는 경우에만 적용됩니다.
기본 구현은 기기와 하드웨어에 따라 다를 수 있음 기능을 제공하기 위해 앱에서 제공하는 피드백 유형만 특정 맥락에서 말이죠 기능에 집중하면 햅틱을 사용 설정할 수 있습니다 유사한 상호작용에 대한 피드백을 제공할 수 있습니다 사용자는 다양한 의미를 연관 짓는 방법을 배웁니다. 새로운 햅틱 반응 방식을 사용하지 못할 수 있습니다
기본 요건: 햅틱 반응 사용 설정
View
가 표시되면 햅틱 반응을 이벤트에 사용할 수 있습니다.
길게 누르기와 같은 일부 이벤트에는 터치 버튼 클릭 시
뷰의 리스너가 이벤트를 처리 (true
반환)합니다.
Android View
는
View.hapticFeedbackEnabled
속성을 false
로 업데이트합니다. 속성 사용 중지 중
기본적으로 피드백이 생성됩니다.
performHapticFeedback
메서드도 시스템 설정을 따릅니다.
HAPTIC_FEEDBACK_ENABLED
- 사용자가 이를 사용 중지할 수 있음
전체 시스템에 적용할 수 있습니다
다른 햅틱 API와 달리 View
와 함께 HapticFeedbackConstants
를 사용합니다.
VIBRATE
권한이 필요하지 않습니다.
HapticFeedbackConstant
선택
HapticFeedbackConstants
와 함께 View
구성요소를 사용할 때는 필요하지 않습니다.
특정 기기 지원을 평가합니다.
한 번 더 동작을 취하세요. 유일한 고려사항은 원하는 SDK의 수준입니다.
상수입니다.
예 1: 키 누름
다음은 View
의 터치 입력에 햅틱 반응을 추가하는 방법을 보여주는 예입니다.
몇 가지 방법을 알아보겠습니다. 이 효과는 버튼을 누르는 듯한 느낌을 시뮬레이션합니다.
버튼을 놓습니다.
Kotlin
class HapticTouchListener : View.OnTouchListener { override fun onTouch(View view, MotionEvent event) : Boolean { when (event.actionMasked) { MotionEvent.ACTION_DOWN -> view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY) MotionEvent.ACTION_UP -> view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY_RELEASE) } return true } }
자바
class HapticTouchListener implements View.OnTouchListener { @Override public boolean onTouch(View view, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY); break; case MotionEvent.ACTION_UP: view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY_RELEASE); break; } return true; } }
예 2: 제출 버튼
햅틱 반응 사용 사례는 터치 포인트와
있습니다. 추상적인 의미를 전달하는 데 사용될 수도 있습니다. 예를 들어
일반적으로 예상되는
CONFIRM
효과는
진동이 짧고 약한 동안
REJECT
은
더 강한 피드백이 있을 수도 있습니다 자세한 내용은
예를 들면 제출 버튼 피드백이 있습니다.
Kotlin
submitButton.setOnClickListener { view -> val successful = performSubmit() if (successful) { view.performHapticFeedback(HapticFeedbackConstants.CONFIRM) } else { view.performHapticFeedback(HapticFeedbackConstants.REJECT) } }
자바
submitButton.setOnClickListener(view -> { boolean successful = performSubmit(); if (successful) { view.performHapticFeedback(HapticFeedbackConstants.CONFIRM); } else { view.performHapticFeedback(HapticFeedbackConstants.REJECT); } });
사전 정의된 VibrationEffect
를 사용하여 햅틱 반응 생성
View
기반 접근 방식을 사용하면 사용자 상호작용에 중점을 둡니다. 그것은
시스템 전체의 일관성을 위해 선호됩니다 하지만 특정 사전 정의된
맞춤 햅틱 반응을 위해 VibrationEffect
API를 호출할 수도 있음
사용할 수 있습니다.
사전 정의된 효과는 VibrationEffect
(으)로 제공됩니다.
상수이며
지원을 확인하고 Vibrator
서비스로 재생
살펴보겠습니다
VibrationEffect
API의 기기 지원 이해
기본 사용에서는 개별적인 지원을 확인할 필요가 없습니다.
VibrationEffect
API API(예: Vibrator.areEffectsSupported
)
Vibrator.areAllEffectsSupported
는 기기가
상수의 맞춤설정된 구현입니다. 맞춤 효과가 표시되지 않는 경우
앱에서도 여전히 효과를 재생하고 플랫폼에서 정의한
대체 구현입니다.
자세한 내용은 사전 정의됨
VibrationEffect
기본 요건: 진동기 및 VIBRATE
권한 로드
대부분의 진동은 로드 가능한 Vibrator
서비스를 통해 재생할 수 있습니다.
방법은 다음과 같습니다.
Kotlin
import android.os.Vibrator val vibrator = context.getSystemService(Vibrator::class.java)
자바
import android.os.Vibrator; Vibrator vibrator = context.getSystemService(Vibrator.class);
앱에는
VIBRATE
권한 순서
기기를 진동시킬 수 있습니다. 이 권한은
애플리케이션 매니페스트 파일:
<uses-permission android:name="android.permission.VIBRATE"/>
사전 정의된 VibrationEffect
재생
사전 정의된 효과는 VibrationEffect.createPredefined
를 사용하여 준비할 수 있습니다.
그런 다음 Vibrator
의 vibrate
메서드 중 하나를 사용하여 재생했습니다.
이 예에서는 클릭 효과를 재생합니다.
Kotlin
val vibrator = context.getSystemService(Vibrator::class.java) ... // Requires VIBRATE permission vibrator.vibrate(VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK))
자바
Vibrator vibrator = context.getSystemService(Vibrator.class); ... // Requires VIBRATE permission vibrator.vibrate(VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK));
프리미티브로 고급 컴포지션 사용
VibrationEffect.Composition
API는
햅틱 반응입니다 하지만 효과와 달리 이러한 프리미티브에는
시스템 수준의 대체가 아니라
기기에서 지원하는 프리미티브와 기타 기능이 모두 포함됩니다.
이러한 API의 사용 방법은 맞춤 햅틱 효과 만들기.