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

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

تصف هذه الصفحة ثلاث طرق لتقديم ملاحظات حسية.

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

تعمل جميع طرق التجاوب الحسّي على احترام إعدادات التجاوب باللمس لدى المستخدم من خلال الافتراضي.

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

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