تتمثل إحدى أهم حالات الاستخدام الأساسية للّمس في تقديم الملاحظات لتفاعلات المستخدم. ومن الأمثلة الشائعة لحالات الاستخدام الجيدة للملاحظات الملموسة أدوات اختيار الوقت والضغط على المفتاح على لوحة مفاتيح افتراضية واختيار النص. لمزيد من المعلومات حول الوقت وكيفية تطبيق تقنية اللمس، يمكنك الاطّلاع على مبادئ تصميم تقنية اللمس.
تصف هذه الصفحة ثلاث طرق لتقديم ملاحظات ملموسة.
- استخدِم
View
(يُنصح به). ويُعدّ هذا النهج عمليًا ويتمتع بأكبر قدر من الدعم ولا يتطلّب إذنVIBRATE
. - استخدام
VibrationEffect
محدّد مسبقًا يتسم هذا الأسلوب بالمزيد من المرونة، ولكن مع بعض المفاضلات. - استخدام التراكيب المتقدمة مع العناصر الأولية. وهذه الطريقة أحدث وأكثر مرونة، ولكنها تتطلب دعمًا محددًا للجهاز.
تستخدم هذه الطرق قواعد أولية محددة على مستوى الجهاز لتقديم ملاحظات عالية الجودة ومصممة خصيصًا للجهاز الذي يحتوي عليه الجهاز.
تلتزم جميع طرق الملاحظات الملموسة تلقائيًا بإعدادات الملاحظات والآراء باللمس لدى المستخدم.
استخدام مكوّنات View
لإنشاء ملاحظات ملموسة
استخدِم طريقة View.performHapticFeedback
لإنشاء ملاحظات ملموسة. تركز
الثوابت الملموسة التي تحددها HapticFeedbackConstants
على
وظائفها في التطبيق، وليس على نوع التأثير اللمسي الذي يتم تنفيذه.
قد يختلف التنفيذ الأساسي بناءً على إمكانات الجهاز والأجهزة، ولكن لا يحتاج التطبيق إلا إلى مراعاة نوع التعليقات التي يقدمها في سياق معين. من خلال التركيز على الوظيفة، يمكنك تمكين الملاحظات اللمسية للتفاعلات المماثلة. يتعلم المستخدمون ربط معاني مختلفة بالأحاسيس الملموسة المختلفة بمرور الوقت.
المتطلّبات الأساسية: تفعيل الملاحظات الملموسة
طالما أنّ View
مرئية، يمكن استخدام الملاحظات الملموسة في الأحداث.
تحتوي بعض الأحداث، مثل الضغط مع الاستمرار، على تقنية اللمس التلقائية التي يتم تشغيلها إذا كان أحد المستمعين في طريقة العرض يتعامل مع الحدث (يتم عرض true
).
يمكن لنظام View
لنظام التشغيل Android إيقاف الملاحظات الملموسة من خلال ضبط السمة
View.hapticFeedbackEnabled
على false
. يؤدي إيقاف هذه السمة
إلى إدراج تعليقات تلقائية.
تلتزم طريقة performHapticFeedback
أيضًا بإعداد النظام HAPTIC_FEEDBACK_ENABLED
، ما يسمح للمستخدم بإيقافها على مستوى النظام بأكمله.
على عكس واجهات برمجة التطبيقات التي تعمل باللمس الأخرى، لا يتطلّب استخدام HapticFeedbackConstants
مع View
الحصول على الإذن VIBRATE
.
اختيار HapticFeedbackConstant
عند استخدام مكوّنات View
مع HapticFeedbackConstants
، لا حاجة إلى تقييم دعم معيّن للجهاز، لأنّ هذه الثوابت سيكون لها سلوك
احتياطي إذا لزم الأمر. الاعتبار الوحيد هو مستوى حزمة 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: زر الإرسال
إن حالات استخدام الملاحظات الملموسة تتجاوز محاكاة التفاعل الجسدي مع الجهاز. وقد تُستخدم أيضًا لنقل معنى مجرد. على سبيل المثال، التوقّع العام للتأثير
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
محددة محدّدة مسبقًا للحصول على تأثيرات مخصّصة للملاحظات الملموسة.
تتوفّر التأثيرات المحدّدة مسبقًا على شكل VibrationEffect
ثابت، ويمكن
التأكّد من أنّها متوافقة وتشغيلها من خلال خدمة Vibrator
كما هو موضّح في
الأمثلة التالية.
فهم إمكانية دعم الأجهزة لواجهات برمجة تطبيقات VibrationEffect
أمّا في حالة الاستخدام الأساسي، فلن تكون هناك حاجة إلى التحقّق من توافق واجهات برمجة تطبيقات VibrationEffect
الفردية. ويتم استخدام واجهات برمجة التطبيقات، مثل Vibrator.areEffectsSupported
و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
،
ثم تشغيلها باستخدام إحدى طرق vibrate
على Vibrator
.
يشغّل هذا المثال تأثير النقر.
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
إمكانيات إضافية
للحصول على ملاحظات ملموسة. ومع ذلك، على عكس التأثيرات، لا تحتوي هذه القواعد الأولية على عناصر احتياطية على مستوى النظام، وهذا يعني أنه ينبغي إيلاء اهتمام بالغ للقواعد الأساسية والإمكانات الأخرى التي يدعمها الجهاز.
تتم مناقشة استخدام واجهات برمجة التطبيقات هذه بمزيد من التفصيل في قسم إنشاء تأثيرات ملموسة مخصّصة.