ハプティクスの最も基本的なユースケースの一つは、ユーザーにフィードバックを提供することです。 やり取りできます時間選択ツール、仮想キーボードのキー入力、テキスト 触覚フィードバックの良いユースケースの一般的な例です。詳細 ハプティクスを適用するタイミングと方法については、 ハプティクスの設計原則。
このページでは、触覚フィードバックを提供する 3 つの方法について説明します。
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 } }
Java
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: [Submit] ボタン
触覚フィードバックのユースケースは、Google Pixel との物理的なやり取りをシミュレーションするだけにとどまりません。
ダウンロードします抽象的な意味を伝えるためにも使用されます。たとえば
アプリケーションに対する
CONFIRM
効果は
短いバイブレーションと
REJECT
の例:
フィードバックを強化し
不具合を知らせることができますこれを次の図に示します。
送信ボタンのフィードバックの例を見てみましょう
Kotlin
submitButton.setOnClickListener { view -> val successful = performSubmit() if (successful) { view.performHapticFeedback(HapticFeedbackConstants.CONFIRM) } else { view.performHapticFeedback(HapticFeedbackConstants.REJECT) } }
Java
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。Vibrator.areEffectsSupported
などの API
および Vibrator.areAllEffectsSupported
は、デバイスが次の状態にあるかどうかを判断するために使用されます。
定数のカスタマイズされた実装。カスタマイズしたエフェクトが
その場合でも、アプリはエフェクトを再生し、プラットフォーム定義の
使用します。
詳しくは、事前定義された
VibrationEffect
。
前提条件: バイブレーターと VIBRATE
権限を読み込む
ほとんどのバイブレーションは、読み込み可能な Vibrator
サービスで再生できます。
次のとおりです。
Kotlin
import android.os.Vibrator val vibrator = context.getSystemService(Vibrator::class.java)
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))
Java
Vibrator vibrator = context.getSystemService(Vibrator.class); ... // Requires VIBRATE permission vibrator.vibrate(VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK));
プリミティブで高度なコンポジションを使用する
VibrationEffect.Composition
API を使用すると、以下を実現できます。
実現できます。ただし効果とは異なり、これらのプリミティブには
これはシステムレベルのフォールバックです。つまり、システムレベルのフォールバックには細心の
デバイスがサポートするプリミティブとその他の機能。
これらの API の使用方法については、このモジュールの カスタムの触覚効果の作成