HAL ও API-এর মধ্যে ধ্রুবক ম্যাপ করা তে চালু করা HAL-API ধ্রুবক ম্যাপিং অত্যন্ত সাজেস্ট করা UX ডিজাইন নীতি দ্বারা পরিচালিত হয়। Android হ্যাপটিক API ব্যবহার করার সময় কীভাবে, কখন এবং কী ব্যবহার করতে হবে তা UX ডিজাইন নীতি নির্ধারণ করে। এইসব মৌলিক নীতি সম্পর্কে আরও জানতে উন্নত হ্যাপটিক: নতুন হ্যাপটিক API কখন, কী এবং কীভাবে ব্যবহার করতে হয় লিঙ্ক দেখুন।
ছবি ১. HAL-API কনস্ট্যান্ট ম্যাপিং: ডিসক্রিট মডেল
হ্যাপ্টিক এফেক্ট বেছে নিন
হ্যাপটিক স্ট্রেন্থ (VibrationEffect) অনুযায়ী
আপনার পছন্দের হ্যাপটিক
স্ট্রেংথ (VibrationEffect) নির্ধারণ করার সময় EFFECT_CLICK থেকে শুরু করলে সবচেয়ে ভালো হয়:
এটি EFFECT_TICK-এর "লাইট" হ্যাপটিক ও EFFECT_HEAVY_CLICK-এর
"হেভি" হ্যাপটিকের মধ্যে মিডিয়ান। EFFECT_CLICK থেকে শুরু করে, আপনি
EFFECT_HEAVY_CLICK-এর মাধ্যমে শক্তি যোগ করে কনসেপচুয়াল এনার্জি বাড়াতে বা কমাতে
পারেন অথবা EFFECT_TICK-এর মাধ্যমে শক্তি কমাতে পারেন। মনে রাখবেন,
EFFECT_DOUBLE_CLICK সবচেয়ে বেশি কনসেপচুয়াল এনার্জি প্রদান করে কারণ এটি
পুনরাবৃত্তি করা হয়েছে।
ছবি ২. হ্যাপটিকের তীব্রতা সংক্রান্ত সেটিংস
ইনপুট ইভেন্ট ও UI এলিমেন্ট (HapticFeedbackConstants) দ্বারা
আপনার লক্ষ্য যদি নির্দিষ্ট ইনপুট ইভেন্ট (যেমন, লং প্রেস বা
সোয়াইপ) বা UI এলিমেন্ট (যেমন, কীবোর্ড) সম্পর্কিত হয়, তাহলে
HapticFeedbackConstants-এ আগে থেকে সংজ্ঞায়িত হ্যাপ্টিক কনস্ট্যান্ট খুঁজে দেখুন।
প্রতিটি কনস্ট্যান্টের নাম নির্দিষ্ট ব্যবহারের ক্ষেত্রে উল্লেখ করে, যেমন KEYBOARD_PRESS, বা
LONG_PRESS।
বাস্তব-জগতের বোতাম প্রেস করার ইভেন্ট সিমুলেট করা
ইনপুট ইভেন্টের (ভার্চুয়াল সফ্ট বোতাম) টাচ হ্যাপটিক ফিডব্যাক ফিজিক্যাল এন্টিটি (যেমন মেকানিক্যাল হার্ড বোতাম) ব্যবহার করে বোতাম প্রেস সিমুলেট করতে পারে।
ইনপুট ইভেন্ট: পেয়ারওয়াইজ ইন্ট্যার্যাকশন ফ্লো
ক্লিক ইভেন্টটি একটি মেকানিক্যাল বোতামের আচরণকে সিমুলেট করার জন্য ডিজাইন করা হয়েছে, যা প্রেস করা হয় তারপর ছেড়ে দেওয়া হয়। বোতাম প্রেস করার ফলে যে মেকানিক্যাল ইমপালস তৈরি হয়, বোতাম ছেড়ে দেওয়ার ফলে তৈরি হওয়া ইমপালসের চেয়ে তার অনুভূত এনার্জি বেশি হয়। তাই, বোতাম প্রেস করার জন্য হ্যাপটিক ফিডব্যাক, বোতাম রিলিজ করার জন্য হ্যাপটিক ফিডব্যাকের চেয়ে বেশি শক্তিশালী হয়।
ছবি ৩. বাইনারি ইনপুট ইভেন্টের মাধ্যমে হ্যাপ্টিক এফেক্ট
হ্যাপটিক স্ট্রেন্থ: বোতাম প্রেস করার অ্যাফর্ডেন্স
ছোট ও হালকা এনগেজমেন্ট সহ ইনপুট ইভেন্ট হালকা হ্যাপটিকের সাথে যুক্ত। দীর্ঘ এবং গভীর এনগেজমেন্ট সহ ইনপুট ইভেন্টগুলি আরও শক্তিশালী হ্যাপটিক্সের সাথে যুক্ত।
ছবি ৪. অ্যাফোর্ডেন্স অনুযায়ী হ্যাপ্টিক এফেক্ট
জেসচার ইনপুট ইভেন্টে ভার্চুয়াল টেক্সচার সিমুলেট করা
গেস্টচার-ভিত্তিক ইনপুট (যেমন, স্ক্রাবিং বা স্ক্রল করা) ভার্চুয়াল হ্যাপ্টিক টেক্সচারের সাথে অ্যালাইন করা যেতে পারে, যখন আঙুলটি ভিজ্যুয়াল UI-এর সাথে সাথে স্ক্রিনে ঘোরাফেরা করছে, যেমন, ভার্চুয়াল টিক চিহ্ন UI এলিমেন্ট সহ ক্লক UI-এর চারপাশে আঙুল ঘোরানোর সময় বারবার হ্যাপ্টিক ফিডব্যাক তৈরি করা।
ভার্চুয়াল হ্যাপ্টিক টেক্সচারের এফেক্টগুলি বারবার ব্যবহার করার জন্য তৈরি করা হয়। এর ফলে, অনুভূত এনার্জি প্রায়শই অ্যাম্প্লিটিউডের চেয়ে বেশি হয় (যখন এফেক্টকে
পুনরাবৃত্তি ছাড়া বা শুধুমাত্র একবার বলা হয়)। এই কারণে, ভার্চুয়াল হ্যাপটিক টেক্সচারের (যেমন CLOCK_TICK বা
TEXT_HANDLE_MOVE) জন্য ডিজাইন করা হ্যাপটিক কনস্ট্যান্টকে অবশ্যই সূক্ষ্ম হতে হবে যাতে
বারবার কিউয়ের মাধ্যমে মুভমেন্টের অনুভূতি প্রদান করা যায়।
ছবি ৫. ভার্চুয়াল টেক্সচার সিমুলেট করার জন্য হ্যাপটিক এফেক্ট
অনুভূতি যোগ করুন
হ্যাপটিক এফেক্টে পজিটিভ বা নেগেটিভ অনুভূতি অন্তর্ভুক্ত করতে, নেগেটিভ অনুভূতিতে আরও শক্তিশালী অনুভূতি প্রয়োগ করুন যাতে ব্যবহারকারীর মনোযোগ আকর্ষণ করা যায়।
ছবি ৬. অনুভূতি সহ হ্যাপ্টিক এফেক্ট
দীর্ঘক্ষণ ধরে ভাইব্রেট করার ফলে হওয়া আওয়াজ এড়িয়ে চলুন
অ্যাটেনশনাল হ্যাপটিকের জন্য দীর্ঘ ভাইব্রেশন থেকে শ্রুতিগোচর শব্দ এড়াতে, র্যাম্প-আপ
ইফেক্ট তৈরি করতে প্যাটার্নটি মসৃণভাবে দ্রুত করুন। এটি করতে
createWaveform(long[] timings, int[] amplitudes, int repeat) ব্যবহার করুন।
ছবি ৭. দীর্ঘ ভাইব্রেশন র্যাম্প-আপ এফেক্ট