إضافة ملاحظات وآراء ملموسة إلى الأحداث

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

توضّح هذه الصفحة ثلاث طرق لتوفير الملاحظات عن طريق اللمس.

تستخدِم هذه الطرق عناصر أساسية محدّدة على مستوى الجهاز لتقديم ملاحظات عالية الجودة مخصّصة للجهاز المعني.

تلتزم جميع طرق الملاحظات اللمسية بإعدادات الملاحظات اللمسية التي ضبطها المستخدم تلقائيًا.

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

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