تصميم تجربة المستخدم في تقنية اللمس

إنّ عملية ربط ثوابت HAL-API التي تم تقديمها في ربط الثوابت بين HAL وAPI تستند إلى مبادئ تصميم تجربة المستخدم التي يُنصح بها بشدة. تحدّد مبادئ تصميم تجربة المستخدم الأساسيات المتعلقة بكيفية استخدام واجهات برمجة التطبيقات الخاصة باللمس في Android ومتى يتم ذلك وما هي العناصر التي يجب استخدامها. يمكنك الاطّلاع على Advanced Haptics: The When, What, and How of New Haptic APIs لمعرفة المزيد عن هذه المبادئ الأساسية.

ربط القيم الثابتة

الشكل 1: ربط ثوابت HAL-API: النموذج المنفصل

اختيار التأثيرات الحسية

حسب قوة الاهتزاز (VibrationEffect)

EFFECT_CLICK هو أفضل مكان للبدء عند تحديد مستوى قوة ردود الفعل اللمسية المفضّل لديك (VibrationEffect)، فهو يمثّل المتوسط بين ردود الفعل اللمسية "الخفيفة" في EFFECT_TICK وردود الفعل اللمسية "القوية" في EFFECT_HEAVY_CLICK. من خلال البدء بـ EFFECT_CLICK، يمكنك زيادة الطاقة المفاهيمية أو خفضها من خلال إضافة قوة باستخدام EFFECT_HEAVY_CLICK أو خفض القوة باستخدام EFFECT_TICK. ضَع في اعتبارك أنّ EFFECT_DOUBLE_CLICK تقدّم أعلى مستوى من الطاقة المفاهيمية لأنّها تتكرّر.

قوة اللمس

الشكل 2: إعدادات قوة الاهتزاز

حسب أحداث الإدخال وعناصر واجهة المستخدم (HapticFeedbackConstants)

إذا كان هدفك مرتبطًا بأحداث إدخال معيّنة (مثل الضغط مع الاستمرار أو التمرير السريع) أو عناصر واجهة المستخدم (مثل لوحة المفاتيح)، ابحث عن الثوابت الحسية المحدّدة مسبقًا في HapticFeedbackConstants. يشير اسم كل ثابت إلى حالات استخدام معيّنة، مثل KEYBOARD_PRESS أو LONG_PRESS.

محاكاة أحداث الضغط على الأزرار في العالم الحقيقي

يمكن أن تحاكي ميزة "اللمس" التجاوب الحسّي لأحداث الإدخال (الأزرار الافتراضية) عمليات الضغط على الأزرار باستخدام كيانات مادية (مثل الأزرار الميكانيكية).

حدث الإدخال: مسار التفاعل الثنائي

تم تصميم حدث ناتج عن النقر لمحاكاة سلوك الزر الميكانيكي الذي يتم الضغط عليه ثم تحريره. تكون الطاقة المحسوسة الناتجة عن الضغط على الزر أعلى من الطاقة الناتجة عن رفع الإصبع عنه. لذلك، يكون التجاوب الحسّي عند الضغط على الأزرار أقوى من التجاوب الحسّي عند رفع الأصابع عن الأزرار.

تقنية اللمس عند الضغط على زر أو تحريره

الشكل 3: تأثيرات اللمس من خلال حدث إدخال ثنائي

قوة الاهتزاز: إمكانية الضغط على الزر

ترتبط أحداث الإدخال التي تتضمّن تفاعلاً أقصر وأخف باهتزازات أخف. ترتبط أحداث الإدخال التي تتضمّن تفاعلاً أطول وأكثر عمقًا بتأثيرات لمسية أقوى.

تقنية اللمس عند الضغط على الأزرار

الشكل 4. تأثيرات اللمس حسب التلميحات المرئية

محاكاة الملمس الافتراضي في حدث إدخال الإيماءات

يمكن أن يتوافق الإدخال المستند إلى الإيماءات (مثل التقديم السريع أو التمرير) مع النقوش اللمسية الافتراضية أثناء تحريك الإصبع على الشاشة مع واجهات المستخدم المرئية، على سبيل المثال، إنشاء ملاحظات لمسية متكررة أثناء تحريك إصبع حول واجهة مستخدم الساعة مع عناصر واجهة مستخدم افتراضية لعلامات التجزئة.

من المفترض أن يتم تكرار المؤثرات الخاصة بالنقوش اللمسية الافتراضية. يؤدي ذلك غالبًا إلى أن تكون الطاقة المحسوسة أعلى من السعة (عندما يتم استدعاء التأثير بدون تكرار أو مرة واحدة فقط). لهذا السبب، يجب أن تكون الثوابت الحسية المصمَّمة للملمس الحسي الافتراضي (مثل CLOCK_TICK أو TEXT_HANDLE_MOVE) دقيقة لتوفير إحساس بالحركة من خلال الإشارات المتكررة.

الزخرفة الافتراضية

الشكل 5. تأثيرات حسية لمحاكاة الملمس الافتراضي

تضمين المشاعر

لتضمين انطباعات إيجابية أو سلبية في التأثيرات الحسية، استخدِم إحساسًا أقوى للانطباعات السلبية لجذب انتباه المستخدم.

Haptic Sentiment

الشكل 6. تأثيرات لمسية مع إشارات عاطفية

تجنُّب الضوضاء المسموعة الناتجة عن الاهتزاز الطويل

لتجنُّب الضوضاء المسموعة الناتجة عن الاهتزاز الطويل في التنبيهات الحسية، يجب تسريع النمط بسلاسة لإنشاء تأثير تصاعدي. يمكنك إجراء ذلك باستخدام createWaveform(long[] timings, int[] amplitudes, int repeat).

الاهتزاز الطويل

الشكل 7. تأثير زيادة الاهتزاز تدريجيًا