ইভেন্টে হ্যাপটিক প্রতিক্রিয়া যোগ করুন

হ্যাপটিক্সের জন্য সবচেয়ে মৌলিক ব্যবহারের ক্ষেত্রে একটি হল ব্যবহারকারীর মিথস্ক্রিয়ায় প্রতিক্রিয়া প্রদান করা। টাইম পিকার, ভার্চুয়াল কীবোর্ডের কী প্রেস এবং টেক্সট নির্বাচন হ্যাপটিক ফিডব্যাকের জন্য ভালো ব্যবহারের ক্ষেত্রে সাধারণ উদাহরণ। কখন এবং কীভাবে হ্যাপটিক্স প্রয়োগ করতে হবে সে সম্পর্কে আরও তথ্যের জন্য, হ্যাপটিক্স ডিজাইনের নীতিগুলি পড়ুন।

এই পৃষ্ঠাটি হ্যাপটিক প্রতিক্রিয়া প্রদানের তিনটি উপায় বর্ণনা করে।

এই পদ্ধতিগুলি ডিভাইস স্তরে সংজ্ঞায়িত আদিম ব্যবহার করে হাতে থাকা ডিভাইসের সাথে মানানসই উচ্চ মানের প্রতিক্রিয়া প্রদান করতে।

সমস্ত হ্যাপটিক প্রতিক্রিয়া পদ্ধতি ডিফল্টরূপে ব্যবহারকারীর স্পর্শ প্রতিক্রিয়া সেটিংসকে সম্মান করে।

হ্যাপটিক প্রতিক্রিয়া তৈরি করতে View উপাদান ব্যবহার করুন

হ্যাপটিক প্রতিক্রিয়া তৈরি করতে View.performHapticFeedback পদ্ধতি ব্যবহার করুন। HapticFeedbackConstants দ্বারা সংজ্ঞায়িত হ্যাপটিক ধ্রুবকগুলি একটি অ্যাপ্লিকেশনে তাদের কার্যকারিতার উপর দৃষ্টি নিবদ্ধ করে, সঞ্চালিত হ্যাপটিক প্রভাবের ধরন নয়।

অন্তর্নিহিত বাস্তবায়ন ডিভাইস এবং হার্ডওয়্যার ক্ষমতার উপর নির্ভর করে পরিবর্তিত হতে পারে, তবে অ্যাপটিকে শুধুমাত্র একটি নির্দিষ্ট প্রসঙ্গে প্রদান করার জন্য প্রতিক্রিয়ার ধরন বিবেচনা করতে হবে। কার্যকারিতার উপর ফোকাস করে, আপনি অনুরূপ মিথস্ক্রিয়াগুলির জন্য হ্যাপটিক প্রতিক্রিয়া সক্ষম করতে পারেন। ব্যবহারকারীরা সময়ের সাথে সাথে বিভিন্ন হ্যাপটিক সংবেদনের সাথে বিভিন্ন অর্থ যুক্ত করতে শেখে।

পূর্বশর্ত: হ্যাপটিক প্রতিক্রিয়া সক্ষম করুন

যতক্ষণ View দৃশ্যমান হয়, হ্যাপটিক ফিডব্যাক এর ইভেন্টের জন্য ব্যবহার করা যেতে পারে। কিছু ইভেন্ট, যেমন লং প্রেস, ডিফল্ট হ্যাপটিক্স থাকে যেটি ট্রিগার হয় যদি ভিউতে থাকা একজন শ্রোতা ঘটনাটি পরিচালনা করে ( true ফিরে আসে)।

একটি অ্যান্ড্রয়েড View View.hapticFeedbackEnabled প্রপার্টি false সেট করে হ্যাপটিক প্রতিক্রিয়া নিষ্ক্রিয় করতে পারে। এই সম্পত্তি নিষ্ক্রিয় ডিফল্ট প্রতিক্রিয়া ফলাফল.

performHapticFeedback পদ্ধতিটি সিস্টেম সেটিং HAPTIC_FEEDBACK_ENABLED কেও সম্মান করে, যা ব্যবহারকারীকে সম্পূর্ণ সিস্টেমের জন্য সম্ভাব্যভাবে অক্ষম করতে দেয়।

অন্যান্য হ্যাপটিক এপিআই থেকে ভিন্ন, একটি View সহ HapticFeedbackConstants ব্যবহার করার জন্য VIBRATE অনুমতির প্রয়োজন হয় না।

একটি HapticFeedbackConstant নির্বাচন করুন

HapticFeedbackConstants এর সাথে View উপাদানগুলি ব্যবহার করার সময়, নির্দিষ্ট ডিভাইস সমর্থন মূল্যায়ন করার প্রয়োজন নেই, কারণ এই ধ্রুবকগুলির প্রয়োজনে ফলব্যাক আচরণ থাকবে। একমাত্র বিবেচনা হল কাঙ্ক্ষিত ধ্রুবকের SDK স্তর।

উদাহরণ 1: কীপ্রেস

স্পর্শ শ্রোতাদের ব্যবহার করে View -এ একটি টাচ ইনপুটে একটি হ্যাপটিক প্রতিক্রিয়া কীভাবে যুক্ত করা যায় তার এটি একটি উদাহরণ। প্রভাবগুলি একটি বোতামে টিপে এবং তারপর এটি ছেড়ে দেওয়ার অনুভূতিকে অনুকরণ করে।

কোটলিন

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
  }
}

জাভা

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 সংকেত ব্যর্থতার জন্য একটি শক্তিশালী প্রতিক্রিয়া হতে পারে। এটি একটি জমা বোতাম প্রতিক্রিয়া জন্য নিম্নলিখিত উদাহরণে চিত্রিত করা হয়েছে.

কোটলিন

submitButton.setOnClickListener { view ->
  val successful = performSubmit()
  if (successful) {
    view.performHapticFeedback(HapticFeedbackConstants.CONFIRM)
  } else {
    view.performHapticFeedback(HapticFeedbackConstants.REJECT)
  }
}

জাভা

submitButton.setOnClickListener(view -> {
  boolean successful = performSubmit();
  if (successful) {
    view.performHapticFeedback(HapticFeedbackConstants.CONFIRM);
  } else {
    view.performHapticFeedback(HapticFeedbackConstants.REJECT);
  }
});

হ্যাপটিক প্রতিক্রিয়া তৈরি করতে একটি পূর্বনির্ধারিত VibrationEffect ব্যবহার করুন

View -ভিত্তিক পদ্ধতির ব্যবহার ব্যবহারকারীর মিথস্ক্রিয়ায় ফোকাস করে। এটি পুরো সিস্টেম জুড়ে ধারাবাহিকতার জন্য পছন্দ করা হয়। যাইহোক, কাস্টমাইজড হ্যাপটিক ফিডব্যাক এফেক্টের জন্য নির্দিষ্ট পূর্বনির্ধারিত VibrationEffect ইফেক্ট এপিআইও ব্যবহার করা যেতে পারে।

পূর্বনির্ধারিত প্রভাব VibrationEffect ধ্রুবক হিসাবে উপলব্ধ, এবং সমর্থনের জন্য চেক করা যেতে পারে এবং নিম্নলিখিত উদাহরণগুলিতে দেখানো Vibrator পরিষেবার সাথে প্লে করা যেতে পারে।

VibrationEffect API-এর ডিভাইস সমর্থন বুঝুন

মৌলিক ব্যবহারে, পৃথক VibrationEffect এপিআইগুলির সমর্থনের জন্য পরীক্ষা করার দরকার নেই। এপিআই যেমন Vibrator.areEffectsSupported এবং Vibrator.areAllEffectsSupported ডিভাইসে ধ্রুবকের একটি কাস্টমাইজড বাস্তবায়ন আছে কিনা তা নির্ধারণ করতে ব্যবহৃত হয়। একটি কাস্টমাইজড প্রভাব উপস্থিত না থাকলে, আপনার অ্যাপ এখনও প্রভাবগুলি চালাতে পারে এবং একটি প্ল্যাটফর্ম-সংজ্ঞায়িত ফলব্যাক বাস্তবায়ন ব্যবহার করতে পারে।

আরো বিস্তারিত জানার জন্য, পূর্বনির্ধারিত VibrationEffect দেখুন।

পূর্বশর্ত: ভাইব্রেটর এবং VIBRATE অনুমতি লোড করুন

বেশিরভাগ কম্পন Vibrator পরিষেবার সাথে চালানো যেতে পারে, যা নিম্নরূপ লোড করা যেতে পারে:

কোটলিন

import android.os.Vibrator

val vibrator = context.getSystemService(Vibrator::class.java)

জাভা

import android.os.Vibrator;

Vibrator vibrator = context.getSystemService(Vibrator.class);

এই পরিষেবাটি ব্যবহার করে ডিভাইসটি ভাইব্রেট করার জন্য অ্যাপটির VIBRATE অনুমতি থাকা প্রয়োজন। অ্যাপ্লিকেশন ম্যানিফেস্ট ফাইলে অনুমতি যোগ করা যেতে পারে:

<uses-permission android:name="android.permission.VIBRATE"/>

একটি পূর্বনির্ধারিত VibrationEffect খেলুন

VibrationEffect.createPredefined ব্যবহার করে পূর্বনির্ধারিত প্রভাব প্রস্তুত করা যেতে পারে, তারপর Vibrator vibrate পদ্ধতিগুলির একটি ব্যবহার করে চালানো যায়।

এই উদাহরণটি একটি ক্লিক প্রভাব খেলে।

কোটলিন

val vibrator = context.getSystemService(Vibrator::class.java)
...
// Requires VIBRATE permission
vibrator.vibrate(VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK))

জাভা

Vibrator vibrator = context.getSystemService(Vibrator.class);
...
// Requires VIBRATE permission
vibrator.vibrate(VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK));

আদিম সঙ্গে উন্নত রচনা ব্যবহার করুন

VibrationEffect.Composition API হ্যাপটিক প্রতিক্রিয়ার জন্য অতিরিক্ত সম্ভাবনা প্রদান করে। যাইহোক, প্রভাবগুলির বিপরীতে, এই আদিমগুলির সিস্টেম-স্তরের ফলব্যাক নেই, যার অর্থ হল ডিভাইস দ্বারা সমর্থিত আদিম এবং অন্যান্য ক্ষমতাগুলির প্রতি যত্নবান মনোযোগ দেওয়া প্রয়োজন৷

এই APIs ব্যবহার করে কাস্টম হ্যাপটিক ইফেক্ট তৈরিতে আরও বিস্তারিত আলোচনা করা হয়েছে।