Haptik-UX-Design

Die Zuordnung der HAL-API-Konstanten, die in Schritt 2 der Checkliste für Haptik vorgestellt wurde, basiert auf den empfohlenen Prinzipien des UX-Designs. Die UX-Designprinzipien legen die Grundlage dafür fest, wie, wann und was Sie bei der Verwendung von Android-Haptik-APIs verwenden sollten. Weitere Informationen zu diesen grundlegenden Prinzipien finden Sie unter Erweiterte Haptik: Das Wann, Was und Wie der neuen Haptic APIs.

Konstante Zuordnung

Abbildung 1. HAL-API-Konstante Zuordnung: Diskretes Modell

Haptische Effekte auswählen

Nach haptischer Stärke (VibrationEffect)

EFFECT_CLICK ist der beste Ausgangspunkt, um die gewünschte haptische Stärke (VibrationEffect) zu bestimmen: Sie liegt genau zwischen der „leichten“ Haptik von EFFECT_TICK und der „kräftigen“ Haptik von EFFECT_HEAVY_CLICK. Wenn Sie mit EFFECT_CLICK beginnen, können Sie die konzeptionelle Energie erhöhen oder verringern, indem Sie mit EFFECT_HEAVY_CLICK Stärke hinzufügen oder mit EFFECT_TICK die Stärke verringern. Denken Sie daran, dass EFFECT_DOUBLE_CLICK die höchste konzeptionelle Energie liefert, weil es wiederholt wird.

Stärke des haptischen Feedbacks

Abbildung 2: Einstellungen für haptische Stärke

Über Eingabeereignisse und UI-Elemente (HapticFeedbackConstants)

Wenn Ihr Ziel mit bestimmten Eingabeereignissen (z. B. langes Drücken oder Wischen) oder UI-Elementen (z. B. Tastatur) verknüpft ist, finden Sie in HapticFeedbackConstants vordefinierte haptische Konstanten. Der Name jeder Konstante bezieht sich auf bestimmte Anwendungsfälle wie KEYBOARD_PRESS oder LONG_PRESS.

Reale Tastendruck-Ereignisse simulieren

Die haptische Touch-Feedbackfunktion von Eingabeereignissen (virtuelle Soft-Schaltflächen) kann das Drücken von Schaltflächen mithilfe physischer Entitäten (z. B. mechanischer Hard-Schaltflächen) simulieren.

Eingabeereignis: Paarweiser Interaktionsablauf

Das Klickereignis soll das Verhalten einer mechanischen Schaltfläche simulieren, die gedrückt und dann losgelassen wird. Die wahrgenommene Energie der mechanischen Impulse beim Drücken einer Taste ist höher als beim Loslassen der Taste. Daher ist das haptische Feedback bei Tastendrücken stärker als das haptische Feedback beim Loslassen der Taste.

Haptik für Drücken und Loslassen von Ereignissen

Abbildung 3 Haptische Effekte durch binäre Eingabeereignisse

Haptische Stärke: Die Anmutung des Tastendrucks

Eingabeereignisse mit kürzerem und leichterem Engagement sind mit leichterer Haptik verbunden. Eingabeereignisse mit längerer und intensiverer Interaktion werden mit stärkerer Haptik verknüpft.

Haptik für Pressefreiheit

Abbildung 4 Haptische Effekte durch Anreize

Virtuelle Textur im Ereignis für die Gesten-Eingabe simulieren

Gestenbasierte Eingaben wie Wischen oder Scrollen können mit virtuellen haptischen Texturen ausgerichtet werden, während sich der Finger auf dem Bildschirm bewegt, und mit visuellen UIs kombiniert werden. So kann beispielsweise wiederholtes haptisches Feedback generiert werden, während sich ein Finger über die Uhren-UI mit virtuellen Markierungen bewegt.

Effekte für virtuelle haptische Texturen sind dazu gedacht, wiederholt zu werden. Dadurch ist die wahrgenommene Energie oft höher als die Amplitude, wenn der Effekt ohne Wiederholung oder nur einmal aufgerufen wird. Aus diesem Grund müssen haptische Konstanten, die für virtuelle haptische Texturen (wie CLOCK_TICK oder TEXT_HANDLE_MOVE) vorgesehen sind, subtil sein, um durch wiederholte Hinweise das Gefühl von Bewegung zu vermitteln.

Virtuelle Textur

Abbildung 5: Haptische Effekte, die virtuelle Texturen simulieren

Sentiments einschließen

Wenn Sie positive oder negative Stimmung in haptische Effekte einbinden möchten, sollten Sie negative Stimmungen stärker hervorheben, um die Aufmerksamkeit der Nutzer zu erregen.

Haptisches Sentiment

Abbildung 6 Haptische Effekte mit Sentiment

Vermeiden Sie hörbare Geräusche durch lange Vibrationen

Um hörbare Geräusche durch lange Vibrationen bei haptischen Warnungen zu vermeiden, beschleunigen Sie das Muster gleichmäßig, um einen Anlaufeffekt zu erzeugen. Verwenden Sie dazu createWaveform(long[] timings, int[] amplitudes, int repeat).

Lange Vibration

Abbildung 7. Lange Vibration