يتم تحديد الثوابت والعناصر الأساسية الحسية من خلال طبقة تجريد الأجهزة (HAL) الخاصة بجهاز الاهتزاز، ويتم ربطها بإطار عمل Android بواجهات برمجة التطبيقات العامة. نفِّذ عمليات التحقّق التالية لتحديد ما إذا كان جهازك يستوفي الحدّ الأدنى من المتطلبات اللازمة لتنفيذ ردود الفعل اللمسية:
الشكل 2: تنفيذ المؤثرات
الشكل 3: تنفيذ العناصر الأساسية
تنفيذ الثوابت
يمكن للمطوّرين استخدام الثوابت الحسّية في VibrationEffect من خلال VibrationEffect.createPredefined(). يُرجى التحقّق من حالة تنفيذ الثوابت الحسّية التالية.
| الثوابت الحسية | المواقع الجغرافية والملخّصات |
|---|---|
EFFECT_TICK، EFFECT_CLICK،
EFFECT_HEAVY_CLICK،
EFFECT_DOUBLE_CLICK |
VibrationEffect
classلا تتضمّن ثوابت اللمس في VibrationEffect أي مفهوم لأحداث الإدخال، كما لا تتضمّن أي عناصر واجهة مستخدم. تتضمّن الثوابت مفهوم مستويات الطاقة بدلاً من ذلك، مثل EFFECT_CLICK وEFFECT_HEAVY_CLICK، ويتم استدعاؤها من خلال
createPredefined(). |
يتم تنفيذ الاهتزازات البديلة الموضّحة أدناه على الأجهزة التي لا تنفّذ الثوابت VibrationEffect. ننصحك بتعديل هذه الإعدادات لتكون متوافقة مع هذه الأجهزة.
EFFECT_CLICKتم إنشاء الاهتزازات الموجية باستخدام
VibrationEffect.createWaveformوتم ضبط التوقيتات فيframeworks/base/core/res/res/values/config.xml##config_virtualKeyVibePattern.EFFECT_HEAVY_CLICKتم إنشاء الاهتزازات على شكل موجة باستخدام
VibrationEffect.createWaveformوتم ضبط التوقيتات علىframeworks/base/core/res/res/values/config.xml##config_longPressVibePattern.EFFECT_DOUBLE_CLICK
اهتزازات الشكل الموجي التي تم إنشاؤها باستخدام
VibrationEffect.createWaveformوالتوقيتات (0 و30 و100 و30).EFFECT_TICKتم إنشاء اهتزازات شكل الموجة باستخدام
VibrationEffect.createWaveformوتم ضبط التوقيتات علىframeworks/base/core/res/res/values/config.xml##config_clockTickVibePattern.
الشكل 4. تنفيذ ثوابت الملاحظات
يمكن للمطوّرين استخدام الثوابت الحسّية في HapticFeedbackConstants من خلال View.performHapticFeedback()). تحقَّق من حالة ثوابت الملاحظات العامة التالية.
| الثوابت الحسية | المواقع الجغرافية والملخّصات |
|---|---|
CLOCK_TICK، CONTEXT_CLICK، KEYBOARD_PRESS،
KEYBOARD_RELEASE، KEYBOARD_TAP، LONG_PRESS،
TEXT_HANDLE_MOVE، VIRTUAL_KEY،
VIRTUAL_KEY_RELEASE، CONFIRM، REJECT،
GESTURE_START، GESTURE_END |
فئة HapticFeedbackConstantsثوابت اللمس في HapticFeedbackConstants أحداث الإدخال المساعد
مع عناصر معيّنة في واجهة المستخدم، مثل KEYBOARD_PRESS وKEYBOARD_RELEASE، اللذين يتم استدعاؤهما من خلال performHapticFeedback() |
تنفيذ العناصر الأساسية
تتضمّن عناصر التحكم الحسية الأساسية في
VibrationEffect.Composition
شدة قابلة للتعديل يمكن للمطوّرين استخدامها من خلال
addPrimitive(int primitiveId, float scale, int delay).
يمكن تقسيم العناصر الأساسية إلى فئتَين:
العناصر الأساسية القصيرة: هي عناصر أساسية تستغرق وقتًا قصيرًا، أي أقل من 20 مللي ثانية عادةً، وتشمل
CLICKوTICKوLOW_TICK.عناصر Chirp الأساسية: عناصر أساسية ذات سعة وتردد مختلفَين، وعادةً ما تكون مدتها أطول من مدة العناصر الأساسية القصيرة. وهي
SLOW_RISEوQUICK_RISEوQUCK_FALLوTHUDوSPIN.
أنواع البيانات الأساسية القصيرة
يمكن وصف العناصر الأساسية القصيرة من خلال ملف تعريف تسارع خرج محرك الاهتزاز. يختلف التردد المطلق المستخدَم لكل عنصر أساسي، حسب التردد الرنيني للمشغّل. يمكنك الاطّلاع على إعداد معدّات الاختبار للحصول على مزيد من المعلومات حول إعداد الأجهزة والأدوات اللازمة لقياس الناتج.
يُعدّ مقياس الجودة المهم للاهتزازات القصيرة هو نسبة النبض إلى الرنين (PRR)، كما هو موضّح في الشكل 5. يتم تعريف نسبة تكرار الرنين بأنها النسبة بين النبضة الرئيسية، المحدّدة بواسطة الإشارة داخل فترة المدة التي ينخفض فيها السعة إلى% 10 من الحد الأقصى للسعة، ونبضة الرنين، المحدّدة بواسطة الإشارة التي تنخفض فيها السعة من% 10 من الحد الأقصى للسعة إلى أقل من% 1 من الحد الأقصى للسعة. صيغة معدّل التكرار هي:
لمزيد من المعلومات حول "تقرير أداء الموقع"، راجِع مقالة تحليل شكل الموجة، ولمزيد من المعلومات حول تحليل النتائج ومقارنتها، راجِع مقالة مقارنة النتائج باستخدام خريطة الأداء.
الشكل 5. تعريف نسبة النبض إلى الرنين
استخدِم العناصر الأساسية القصيرة كتعليقات على بيانات أدخلها المستخدم أو شغِّلها في مقطوعات أطول لإنشاء تأثيرات ناعمة. وهذا يعني أنّه يتم تشغيلها عادةً بشكل متكرّر ومتتالٍ. يمكن أن تزيد الشدة المدرَكة لعنصر بدائي قصير واحد من شدة التأثير الأكبر. لهذا السبب، يجب معايرة عنصر أساسي واحد أو عدد قليل من العلامات باستخدام تركيبة أكبر، مثل 100 علامة متتالية.
عنصر النقر الأساسي
تكون تأثيرات النقر قوية وواضحة، وعادةً ما تعمل بالقرب من التردد الرنيني للجهاز للوصول إلى الحد الأقصى من الناتج خلال مدة قصيرة. وهي أقوى وأعمق من المشاعر الأساسية الأخرى، وتعمل بأقصى شدة.
إذا كان ذلك متاحًا، استخدِم ميزة "السرعة الفائقة للمحرك" في البداية وميزة "الفرملة النشطة" في النهاية لتحقيق وقت قصير لارتفاع وانخفاض سرعة المحرك. في بعض المحركات، يمكن تحقيق تسارع أسرع باستخدام موجة مربّعة بدلاً من موجة جيبية. تعرض "الشكل 6" مثالاً على ملف تسريع الإخراج الخاص بمكوّن النقر الأساسي:
الشكل 6. مثال على ملف تسريع الإخراج لمكوّن النقر
| المَعلمة | الإرشادات |
|---|---|
| المدة |
الهدف: 12 مللي ثانية الحدّ الأقصى: أقل من 30 مللي ثانية |
| تسارع الإنتاجية في أوقات الذروة |
الهدف: 2 جيجابايت الحدّ الأقصى: > 1 غيغابايت |
| التكرار | تقريبًا عند التردد الرنيني |
عنصر علامة صح أساسي (علامة صح خفيفة)
تكون تأثيرات النقر حادة وقصيرة وتعمل عادةً في نطاق تردد أعلى. يمكن أيضًا وصف هذا العنصر الأساسي بأنّه نقرة متوسطة الشدة بتردد أعلى مع ذيل قصير. تنطبق الإرشادات نفسها على تحقيق وقت ارتفاع قصير باستخدام زيادة سرعة المحرك أو موجة مربعة للبدء الأولي، والكبح النشط عند الإزاحة. يعرض الشكل 7 مثالاً على ناتج ملف تعريف التسارع الخاص بعنصر tick الأساسي:
الشكل 7. مثال على ملف تسريع الإخراج الخاص بعنصر tick الأساسي
| المَعلمة | الإرشادات |
|---|---|
| المدة |
الهدف: 5 ملّي ثانية الحدّ الأقصى: < 20 مللي ثانية |
| تسارع الإنتاجية في أوقات الذروة |
الهدف: نصف الحدّ: بين 0.5 غيغابايت و1 غيغابايت |
| التكرار |
الهدف: ضعف التردد الرنيني الحدّ الأقصى: < 500 هرتز |
Low tick primitive
إنّ الصوت الأولي المنخفض هو نسخة أكثر نعومة وأقل قوة من الصوت الخفيف، ويعمل ضمن نطاق تردد أقل لتوفير تأثير أكثر اكتمالاً. يمكن وصف هذا العنصر الأساسي أيضًا بأنّه نقرة متوسطة الشدة وبمعدل تكرار أقل، وتهدف إلى الاستخدام المتكرر للحصول على ملاحظات ديناميكية. تنطبق الإرشادات نفسها على تحقيق وقت ارتفاع قصير باستخدام زيادة سرعة المحرك أو موجة مربعة للبدء الأولي. تعرض "الشكل 8" مثالاً على ملف تسريع الإخراج الخاص بالعنصر الأساسي low tick:
الشكل 8. مثال على ملف تسريع الإخراج الأولي المنخفض
| المَعلمة | الإرشادات |
|---|---|
| المدة |
الهدف: 12 مللي ثانية الحدّ الأقصى: أقل من 30 مللي ثانية |
| تسارع الإنتاجية في أوقات الذروة |
الهدف: ربع الحدّ: بين 0.2 G و0.5 G |
| التكرار |
الهدف: 2/3 من التردد الرنيني الحدّ الأقصى: أقل من 100 هرتز |
عناصر Chirp الأساسية
يمكن وصف عناصر Chirp الأساسية من خلال إشارات الإدخال لمستوى الجهد وتردد الاهتزاز. يختلف التسارع الذي يمكن أن يوفّره المحرك في نطاقات التردد المختلفة حسب منحنى استجابة التردد للمشغّل. يجب تعديل نطاقات التردد ومستويات الفولتية لكل جهاز على حدة.
Slow rise primitive
الارتفاع البطيء هو عبارة عن مسح بطيء للأعلى للسعة والتردد مع بداية ناعمة وزيادة ثابتة في شدة الاهتزاز أثناء المسح. ويمكن تنفيذ ذلك من خلال مسح متسق لكل من السعة والتردد، باستخدام نطاق تردد منخفض يعمل خارج نطاق الرنين. يعرض الشكل 9 مَعلمات الإدخال ومثالاً على ملف تسريع الإخراج لهذا التنفيذ. (يتطابق الخط الأحمر مع تصنيفات السعة على اليمين ويمثّل كيفية تغيُّر سعة الاهتزاز مع مرور الوقت. يتطابق الخط الأزرق مع تصنيفات التردد على اليسار ويمثّل كيفية تغيُّر تردد الاهتزاز مع مرور الوقت.)
الشكل 9. مَعلمات الإدخال ومثال على ملف تعريف تسريع الإخراج للعنصر الأساسي الذي يرتفع ببطء
إذا كان استجابة التردد للمحرك محدودة (غير قوية بما يكفي خارج تردد الرنين)، يمكن استخدام طريقة بديلة وهي مسح جيبي من 1/2x إلى 1x تردد الرنين. يساهم رنين المحرّك في الوصول إلى ذروة الإشارة في النهاية.
| المَعلمة | الإرشادات |
|---|---|
| المدة |
الهدف: 500 مللي ثانية التفاوت: 20 مللي ثانية |
| تسارع الإنتاجية في أوقات الذروة |
الهدف: 0.5 غرام الحدّ: بين 0.5 غيغابايت و1 غيغابايت |
| التكرار |
الهدف: من 1/2 إلى 2/3 من التردد الرنيني البديل: من 1/2 إلى التردد الرنيني |
Quick rise primitive
الارتفاع السريع هو زيادة أسرع في السعة والتردد مع بداية ناعمة وزيادة ثابتة في شدة الاهتزاز على مستوى عملية المسح. يجب أن تكون أهداف تسارع الإخراج وتردّد الاهتزاز هي نفسها أهداف عنصر "الارتفاع البطيء" الأساسي، ولكن يتم تحقيقها في مدة أقصر. يعرض الشكل 10 مَعلمات إدخال الاهتزاز ومثالاً على ملف تسريع الناتج الخاص بالعنصر الأساسي "الارتفاع البطيء". (يتطابق الخط الأحمر مع تصنيفات السعة على اليمين ويمثّل كيفية تغيُّر سعة الاهتزاز مع مرور الوقت. يتطابق الخط الأزرق مع تصنيفات التردد على اليسار ويمثّل كيفية تغيُّر تردد الاهتزاز مع مرور الوقت.)
الشكل 10. مَعلمات الإدخال ومثال على ملف تسريع الإخراج الخاص بالعنصر الأساسي quick rise
| المَعلمة | الإرشادات |
|---|---|
| المدة |
الهدف: 150 مللي ثانية التفاوت: 20 مللي ثانية |
| تسارع الإنتاجية في أوقات الذروة |
الهدف: الأسعار نفسها في فندق الحدّ الأقصى: هو نفسه |
| التكرار |
الهدف: الأسعار نفسها في فندق الخيار البديل: الأسعار نفسها في فندق |
Quick fall primitive
الانخفاض السريع هو انخفاض سريع في السعة والتردد مع بداية ناعمة. يمكنك استخدام تردد أعلى كنقطة بداية أثناء تسريع المحرك للوصول إلى الحد الأقصى من تسارع الإخراج. يجب أن ينخفض التردد بشكل ثابت خلال عملية المسح، حتى أثناء وقت الارتفاع. يعرض الشكل 11 مَعلمات الإدخال ومثالاً على ملف تسريع الإخراج لهذا التنفيذ. (يتطابق الخط الأحمر مع تصنيفات السعة على اليمين ويمثّل كيفية تغيُّر سعة الاهتزاز مع مرور الوقت. يتطابق الخط الأزرق مع تصنيفات التردد على اليسار ويمثّل كيفية اختلاف تردد الاهتزاز مع مرور الوقت.)
الشكل 11. مَعلمات الإدخال ومثال على ملف تعريف تسارع الإخراج للعنصر الأساسي الخاص بالسقوط السريع
| المَعلمة | الإرشادات |
|---|---|
| المدة |
الهدف: 100 مللي ثانية التفاوت: 20 مللي ثانية |
| تسارع الإنتاجية في أوقات الذروة |
الهدف: 1 G الحدّ: بين 0.5 غيغابايت و2 غيغابايت |
| التكرار |
الهدف: من ضعف إلى مرّة واحدة من التردد الرنيني |
Thud primitive
الخبط هو تأثير إيقاعي منخفض يشبه الإحساس المادي بالضرب على خشب مجوّف. تعمل هذه السمة الأساسية في نطاق تردد منخفض، على غرار السمة الأساسية ذات التردد المنخفض، وذلك لإضفاء المزيد من العمق على التأثير. يمكنك تنفيذ عنصر "الخبطة" الأساسي على شكل انخفاض في السعة والتردد ضمن نطاق تردد منخفض (يُفضّل أن يكون أقل من 100 هرتز). يعرض الشكل 12 مَعلمات الإدخال ومثالاً على ملف تسريع الإخراج الخاص بهذا التنفيذ. (يتطابق الخط الأحمر مع تصنيفات السعة على اليمين ويمثّل كيفية تغيُّر سعة الاهتزاز مع مرور الوقت. يتطابق الخط الأزرق مع تصنيفات التردد على اليسار ويمثّل كيفية تغيُّر تردد الاهتزاز مع مرور الوقت.)
الشكل 12: معلَمات الإدخال ومثال على ملف تعريف تسريع الإخراج لعنصر thud الأساسي
إذا كان استجابة التردد للمحرك محدودة، يمكن استخدام طريقة بديلة، وهي البدء بإشارة تشغيل بكثافة كاملة عند التردد الرنيني ثم الانتقال إلى أقل تردد ممكن يمكن إدراكه. قد يتطلّب هذا الأسلوب زيادة شدة إشارة المحرك عند التردد المنخفض كي يتم الشعور بالاهتزاز.
| المَعلمة | الإرشادات |
|---|---|
| المدة |
الهدف: 300 مللي ثانية التفاوت: 20 مللي ثانية |
| تسارع الإنتاجية في أوقات الذروة |
الهدف: 0.25 غرام الحدّ: بين 0.2 G و0.5 G |
| التكرار |
الهدف: من 1/2 إلى 1/3 من التردد الرنيني البديل: من 1 إلى 1/2 من التردد الرنيني |
عنصر Spin الأساسي
يحاكي الدوران قوة دفع دورانية سريعة للأعلى والأسفل مع تركيز بسيط في المنتصف. يمكن تنفيذ الدوران من خلال تغيير السعة والتردد بشكل مستقل وفي اتجاهين متعاكسين، ثم عكس الحركة. من المهم استخدام نطاق تردد منخفض (يُفضّل أن يكون أقل من 100 هرتز). يعرض الشكل 13 مَعلمات الإدخال ومثالاً على ملف تسريع الإخراج لهذا التنفيذ. (يتطابق الخط الأحمر مع تصنيفات السعة على اليمين ويمثّل كيفية تغيُّر سعة الاهتزاز مع مرور الوقت. يتطابق الخط الأزرق مع تصنيفات التردد على اليسار ويمثّل كيفية تغيُّر تردد الاهتزاز مع مرور الوقت.)
وقد نصحنا بأن يتم استدعاء العنصر الأساسي الخاص بالدوران مرتين متتاليتين، أو ثلاث مرات في التركيبات، لتحقيق إحساس بالدوران وعدم الثبات.
إذا كان استجابة التردد للمحرك محدودة، يمكن تنفيذ طريقة بديلة وهي إجراء مسح سريع للموجة الجيبية من 1/2x إلى 1x التردد الرنيني والعودة. يمنح الرنين الحركي الإشارة تلقائيًا نبرة في المنتصف.
الشكل 13. معلَمات الإدخال ومثال على ملف تعريف تسارع الإخراج لعنصر spin الأساسي
| المَعلمة | الإرشادات |
|---|---|
| المدة |
الهدف: 150 مللي ثانية التفاوت: 20 مللي ثانية |
| تسارع الإنتاجية في أوقات الذروة |
الهدف: 0.5 غرام الحدّ: بين 0.25 G و0.75 G |
| التكرار |
الهدف: من 2/3 إلى 1/3، ثم العودة إلى 1/2 من التردد الرنيني البديل: من 2/3 إلى 1 مرة، ثم العودة إلى 1/2 من التردد الرنيني |