HAL और एपीआई के बीच मैप कॉन्स्टैंट में, HAL-API कॉन्स्टैंट मैपिंग को शामिल किया गया है. इसे यूएक्स डिज़ाइन के उन सिद्धांतों के आधार पर तैयार किया गया है जिन्हें लागू करने का सुझाव दिया जाता है. यूएक्स डिज़ाइन के सिद्धांतों से यह तय होता है कि Android के हैप्टिक एपीआई का इस्तेमाल कब, कैसे, और किस तरह किया जाए. इन बुनियादी सिद्धांतों के बारे में ज़्यादा जानने के लिए, हैप्टिक की ऐडवांस सुविधा: नए हैप्टिक एपीआई का इस्तेमाल कब, कैसे, और किस तरह करें लेख पढ़ें.
पहली इमेज. HAL-API कॉन्स्टैंट मैपिंग: अलग-अलग मॉडल
हैप्टिक इफ़ेक्ट चुनना
हैप्टिक की इंटेंसिटी (VibrationEffect) के हिसाब से
EFFECT_CLICK अपनी पसंद के मुताबिक हैप्टिक
की इंटेंसिटी (VibrationEffect) तय करने के लिए, सबसे अच्छी जगह है:
यह EFFECT_TICK के "लाइट" हैप्टिक और
EFFECT_HEAVY_CLICK के "हेवी" हैप्टिक के बीच की इंटेंसिटी है. EFFECT_CLICK से शुरुआत करके, EFFECT_HEAVY_CLICK के साथ इंटेंसिटी जोड़कर, कॉन्सेप्ट के हिसाब से एनर्जी बढ़ाई जा सकती है. वहीं, EFFECT_TICK के साथ इंटेंसिटी कम करके, कॉन्सेप्ट के हिसाब से एनर्जी कम की जा सकती है. ध्यान रखें कि EFFECT_DOUBLE_CLICK से कॉन्सेप्ट के हिसाब से सबसे ज़्यादा एनर्जी मिलती है, क्योंकि यह बार-बार दोहराया जाता है.
दूसरी इमेज. हैप्टिक की इंटेंसिटी की सेटिंग
इनपुट इवेंट और यूज़र इंटरफ़ेस (यूआई) एलिमेंट (HapticFeedbackConstants) के हिसाब से
अगर आपका लक्ष्य, खास इनपुट इवेंट (जैसे, दबाकर रखना या
स्वाइप करना) या यूज़र इंटरफ़ेस (यूआई) एलिमेंट (जैसे, कीबोर्ड) से जुड़ा है, तो पहले से तय हैप्टिक कॉन्स्टैंट ढूंढें
HapticFeedbackConstants.
हर कॉन्स्टैंट का नाम, इस्तेमाल के खास उदाहरणों के बारे में बताता है. जैसे, KEYBOARD_PRESS या LONG_PRESS.
असल दुनिया में बटन दबाने वाले इवेंट को सिम्युलेट करना
इनपुट इवेंट (वर्चुअल सॉफ़्ट बटन) के टच हैप्टिक फ़ीडबैक, फ़िज़िकल एंटिटी (जैसे, मैकेनिकल हार्ड बटन) का इस्तेमाल करके, बटन दबाने की प्रोसेस को सिम्युलेट कर सकते हैं.
इनपुट इवेंट: पेयरवाइज़ इंटरैक्शन फ़्लो
क्लिक इवेंट को मैकेनिकल बटन के व्यवहार को सिम्युलेट करने के लिए डिज़ाइन किया गया है. इसे दबाया जाता है और फिर छोड़ा जाता है. बटन दबाने से मिलने वाली मैकेनिकल इंपल्स की एनर्जी, बटन छोड़ने से मिलने वाली एनर्जी से ज़्यादा होती है. इसलिए, बटन दबाने के लिए मिलने वाला हैप्टिक फ़ीडबैक, बटन छोड़ने के लिए मिलने वाले हैप्टिक फ़ीडबैक से ज़्यादा इंटेंस होता है.
तीसरी इमेज. बाइनरी इनपुट इवेंट के हिसाब से हैप्टिक इफ़ेक्ट
हैप्टिक की इंटेंसिटी: बटन दबाने की सुविधा
कम समय और हल्के इंटरैक्शन वाले इनपुट इवेंट, लाइट हैप्टिक से जुड़े होते हैं. ज़्यादा समय और डीप इंटरैक्शन वाले इनपुट इवेंट, इंटेंस हैप्टिक से जुड़े होते हैं.
चौथी इमेज. अफ़ॉर्डेंस के हिसाब से हैप्टिक इफ़ेक्ट
जेस्चर इनपुट इवेंट में वर्चुअल टेक्सचर को सिम्युलेट करना
जेस्चर पर आधारित इनपुट (जैसे, स्क्रबिग या स्क्रोल करना) को वर्चुअल हैप्टिक टेक्सचर के साथ अलाइन किया जा सकता है. ऐसा तब किया जा सकता है, जब उंगली स्क्रीन पर विज़ुअल यूज़र इंटरफ़ेस (यूआई) के साथ घूम रही हो. उदाहरण के लिए, जब कोई उंगली वर्चुअल टिक मार्क यूज़र इंटरफ़ेस (यूआई) एलिमेंट के साथ घड़ी के यूज़र इंटरफ़ेस (यूआई) के चारों ओर घूम रही हो, तो बार-बार हैप्टिक फ़ीडबैक जनरेट करना.
वर्चुअल हैप्टिक टेक्सचर के लिए इफ़ेक्ट को बार-बार दोहराया जाता है. इससे अक्सर, एंप्लीट्यूड के मुकाबले ज़्यादा एनर्जी मिलती है. ऐसा तब होता है, जब इफ़ेक्ट को
बिना दोहराए या सिर्फ़ एक बार कॉल किया जाता है. इस वजह से, वर्चुअल हैप्टिक टेक्सचर के लिए डिज़ाइन किए गए हैप्टिक कॉन्स्टैंट (जैसे, CLOCK_TICK या TEXT_HANDLE_MOVE) सटल होने चाहिए, ताकि बार-बार मिलने वाले संकेतों से मूवमेंट का एहसास हो.
पांचवीं इमेज. वर्चुअल बनावट को सिम्युलेट करने के लिए हैप्टिक इफ़ेक्ट
भावनाएं शामिल करना
हैप्टिक इफ़ेक्ट में पॉज़िटिव या नेगेटिव भावनाएं शामिल करने के लिए, नेगेटिव भावना के लिए ज़्यादा इंटेंस सेंसेशन लागू करें, ताकि उपयोगकर्ता का ध्यान खींचा जा सके.
छठी इमेज. भावनाओं के साथ हैप्टिक इफ़ेक्ट
लंबे समय तक वाइब्रेशन होने पर सुनाई देने वाली आवाज़ से बचना
ध्यान खींचने वाले हैप्टिक के लिए, लंबे समय तक वाइब्रेशन होने पर सुनाई देने वाली आवाज़ से बचने के लिए, पैटर्न को आसानी से तेज़ करें, ताकि रैंप-अप इफ़ेक्ट बनाया जा सके. ऐसा करने के लिए,
createWaveform(long[] timings, int[] amplitudes, int repeat) का इस्तेमाल करें.
सातवीं इमेज. लंबे समय तक वाइब्रेशन होने पर रैंप-अप इफ़ेक्ट