ومن أهم حالات الاستخدام الأساسية للّمس هو تقديم ملاحظات إلى المستخدم والتفاعلات. أدوات اختيار الوقت والضغط على المفتاح على لوحة المفاتيح الافتراضية والنص التحديد أمثلة شائعة لحالات الاستخدام الجيد للتجاوب الحسّي. لمزيد من المعلومات، معلومات حول وقت وكيفية تطبيق تقنية اللمس، مبادئ تصميم تقنية اللمس:
تصف هذه الصفحة ثلاث طرق لتقديم ملاحظات حسية.
- استخدام
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
إمكانيات إضافية
التجاوب الحسّي. ومع ذلك، وعلى عكس التأثيرات، لا تحتوي هذه الأساسيات على
على مستوى النظام، مما يعني أنه يجب إيلاء اهتمام دقيق
المبادئ الأساسية والإمكانات الأخرى التي يدعمها الجهاز.
وسنناقش استخدام واجهات برمجة التطبيقات هذه بمزيد من التفصيل في إنشاء تأثيرات لمسية مخصّصة: