تستند عملية ربط ثوابت 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. تأثيرات لمسية لمحاكاة الملمس الافتراضي
تضمين الآراء
لتضمين انطباعات إيجابية أو سلبية في التأثيرات الحسية، استخدِم إحساسًا أقوى للانطباعات السلبية لجذب انتباه المستخدم.
الشكل 6. تأثيرات لمسية مع تحليل المشاعر
تجنُّب الضوضاء المسموعة الناتجة عن الاهتزاز الطويل
لتجنُّب الضوضاء المسموعة الناتجة عن الاهتزاز الطويل في التنبيهات الحسية، يجب تسريع النمط بسلاسة لإنشاء تأثير تصاعدي. يمكنك إجراء ذلك باستخدام
createWaveform(long[] timings, int[] amplitudes, int repeat)
.
الشكل 7. تأثير زيادة الاهتزاز تدريجيًا