Haptik UX-Design

Die in Schritt 2 der Haptik-Checkliste eingeführte HAL-API-Konstantenzuordnung basiert auf den dringend empfohlenen UX-Designprinzipien. Die UX-Designprinzipien definieren die Grundlage dafür, wie, wann und was bei der Verwendung von Android-Haptik-APIs zu verwenden ist. Siehe Advanced Haptics: The When, What, and How of New Haptic APIs , um mehr über diese grundlegenden Prinzipien zu erfahren.

Konstante Zuordnung

Abbildung 1. HAL-API-Konstantenzuordnung: Diskretes Modell

Haptische Effekte auswählen

Durch haptische Stärke ( VibrationEffect )

EFFECT_CLICK ist der beste Ausgangspunkt, um Ihre gewünschte haptische Stärke ( VibrationEffect ) zu bestimmen: Es ist der Median zwischen der "leichten" Haptik von EFFECT_TICK und der "schweren" Haptik von EFFECT_HEAVY_CLICK . Indem 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, EFFECT_DOUBLE_CLICK die höchste konzeptionelle Energie liefert, weil es wiederholt wird.

Haptische Stärke

Abbildung 2. Einstellungen für die haptische Stärke

Durch 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 vordefinierte haptische Konstanten in HapticFeedbackConstants . Der Name jeder Konstante bezieht sich auf bestimmte Anwendungsfälle wie KEYBOARD_PRESS oder LONG_PRESS .

Simulieren von realen Tastendruckereignissen

Die berührungshaptische Rückmeldung von Eingabeereignissen (virtuelle Softbuttons) kann Tastendrücke unter Verwendung physikalischer Einheiten (wie etwa mechanischer Hardbuttons) simulieren.

Eingabeereignis: Paarweiser Interaktionsfluss

Das Click-Ereignis soll das Verhalten einer mechanischen Taste simulieren, die gedrückt und dann losgelassen wird . Die empfundene Energie des mechanischen Impulses beim Drücken einer Taste ist höher als beim Loslassen der Taste. Daher ist das haptische Feedback für das Drücken von Tasten stärker als das haptische Feedback für das Loslassen von Tasten.

Event-Presse- und Release-Haptik

Abbildung 3. Haptische Effekte durch binäre Eingabeereignisse

Haptische Stärke: Die Erschwinglichkeit des Tastendrucks

Eingabeereignisse mit kürzerem und leichterem Engagement sind mit einer leichteren Haptik verbunden. Eingabeereignisse mit längerem und tieferem Engagement sind mit einer stärkeren Haptik verbunden.

Drücken Sie Affordance-Haptik

Abbildung 4. Haptische Effekte nach Erschwinglichkeit

Simulieren einer virtuellen Textur in einem Gesteneingabeereignis

Gestenbasierte Eingaben (wie Scrubbing oder Scrollen) können mit virtuellen haptischen Texturen ausgerichtet werden, während sich der Finger auf dem Bildschirm bewegt, zusammen mit visuellen UIs, um beispielsweise wiederholtes haptisches Feedback zu erzeugen, während sich ein Finger rund um die Uhr bewegt UI mit virtuellem Häkchen UI-Elemente.

Effekte für virtuelle haptische Texturen sollen wiederholt werden. Dadurch ist die empfundene 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 ) entworfen wurden, subtil sein, um durch wiederholte Hinweise das Gefühl von Bewegung zu vermitteln.

Virtuelle Textur

Abbildung 5. Haptische Effekte zur Simulation einer virtuellen Textur

Gefühle inklusive

Um positive oder negative Gefühle in haptische Effekte einzubeziehen, wenden Sie eine stärkere Empfindung auf negative Gefühle an, um die Aufmerksamkeit des Benutzers zu erregen.

Haptisches Gefühl

Abbildung 6. Haptische Effekte mit Sentiment

Vermeidung von hörbaren Geräuschen durch lange Vibration

Um hörbare Geräusche durch lange Vibrationen für eine aufmerksamkeitsstarke Haptik zu vermeiden, beschleunigen Sie das Muster sanft, um einen Ramp-Up-Effekt zu erzeugen. Verwenden Sie dazu createWaveform(long[] timings, int[] amplitudes, int repeat) .

Lange Vibration

Abbildung 7. Langer Vibrationsrampeneffekt