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