অ্যান্ড্রয়েড ১৪ (এপিআই লেভেল ৩৪) এবং এর পরবর্তী সংস্করণ ব্যবহারকারীদের যেকোনো অ্যাপের যেকোনো টেক্সট ইনপুট ফিল্ডে স্টাইলাস ব্যবহার করে লেখার সুবিধা দেয়। অ্যান্ড্রয়েডের টেক্সট এন্ট্রি ফিল্ডগুলো, যার মধ্যে EditText কম্পোনেন্ট এবং WebView টেক্সট উইজেট অন্তর্ভুক্ত, ডিফল্টভাবেই স্টাইলাস ইনপুট সমর্থন করে।
তবে, যদি আপনার অ্যাপে কাস্টম টেক্সট ইনপুট ফিল্ডের প্রয়োজন হয় ( কাস্টম টেক্সট এডিটর দেখুন) অথবা এর লেআউটটি জটিল হয় এবং টেক্সট এন্ট্রি ফিল্ডগুলো কোনো ড্রয়িং সারফেসের উপরে থাকে, তাহলে আপনাকে আপনার অ্যাপটি কাস্টমাইজ করতে হবে।
EditText
অ্যান্ড্রয়েড ১৪ এবং তার পরবর্তী সংস্করণগুলিতে সমস্ত EditText ফিল্ডের জন্য স্টাইলাস হ্যান্ডরাইটিং ডিফল্টরূপে সক্রিয় থাকে। কোনো EditText এর হ্যান্ডরাইটিং মোড চালু হয় যখন ভিউটির হ্যান্ডরাইটিং সীমার মধ্যে একটি স্টাইলাস মোশন ইভেন্ট শনাক্ত করা হয়।
হস্তাক্ষরের সীমানার মধ্যে ভিউটির চারপাশে ৪০ ডিপি উল্লম্ব প্যাডিং এবং ১০ ডিপি অনুভূমিক প্যাডিং অন্তর্ভুক্ত রয়েছে। setHandwritingBoundsOffsets() ব্যবহার করে হস্তাক্ষরের সীমানা সামঞ্জস্য করুন। setAutoHandwritingEnabled(false) ব্যবহার করে হস্তাক্ষর নিষ্ক্রিয় করুন।

EditText ফিল্ডের হস্তাক্ষর সীমা।ইনপুট প্রতিনিধিদল
অ্যাপগুলো প্লেসহোল্ডার UI এলিমেন্ট প্রদর্শন করতে পারে, যেগুলোকে দেখতে টেক্সট ইনপুট ফিল্ডের মতো মনে হলেও আসলে সেগুলো টেক্সট ইনপুট করার ক্ষমতা ছাড়া কেবলই স্থির UI এলিমেন্ট। সার্চ ফিল্ড এর একটি সাধারণ উদাহরণ। এই স্থির UI এলিমেন্টটিতে ট্যাপ করলে একটি নতুন UI-তে ট্রানজিশন হয়, যেখানে ইনপুটের জন্য ফোকাস করা একটি কার্যকরী টেক্সট ইনপুট ফিল্ড থাকে।
স্টাইলাস ইনপুট ডেলিগেশন
প্লেসহোল্ডার ইনপুট ফিল্ডের জন্য স্টাইলাস দিয়ে হাতে লেখার ইনপুট সমর্থন করতে হ্যান্ডরাইটিং ডেলিগেশন এপিআই ব্যবহার করুন ( setHandwritingDelegatorCallback() এবং setIsHandwritingDelegate() দেখুন)। প্লেসহোল্ডার UI এলিমেন্টটি হ্যান্ডরাইটিংকে একটি ফাংশনাল ইনপুট ফিল্ডে ডেলিগেট করার জন্য কনফিগার করা থাকে, উদাহরণস্বরূপ:
কোটলিন
if (Build.VERSION.SDK_INT >= 34) { placeholderInputField.setHandwritingDelegatorCallback { showAndFocusDelegateInputField() } delegateInputField.setIsHandwritingDelegate(true) }
জাভা
if (Build.VERSION.SDK_INT >= 34) { placeholderInputField.setHandwritingDelegatorCallback(this::showAndFocusInputFieldDelegate); delegateInputField.setIsHandwritingDelegate(true); }
প্লেসহোল্ডার টেক্সট ইনপুট ফিল্ড ভিউ-এর উপর স্টাইলাস নাড়ালে কলব্যাকটি সক্রিয় হয়। এই কলব্যাকটি UI ট্রানজিশন ট্রিগার করে ফাংশনাল ইনপুট ফিল্ডটিকে প্রদর্শন ও ফোকাস করে। কলব্যাকের ইমপ্লিমেন্টেশন সাধারণত প্লেসহোল্ডার এলিমেন্টের ক্লিক লিসেনারের ইমপ্লিমেন্টেশনের মতোই হয়। যখন ফাংশনাল ইনপুট ফিল্ডটি একটি InputConnection তৈরি করে, তখন স্টাইলাস হ্যান্ডরাইটিং মোড চালু হয়।
উপাদান নকশা
com.google.android.material.search লাইব্রেরিটি প্লেসহোল্ডার UI প্যাটার্নের বাস্তবায়ন সহজ করার জন্য SearchBar এবং SearchView ক্লাসগুলো প্রদান করে।
প্লেসহোল্ডার এবং ফাংশনাল সার্চ ভিউ setUpWithSearchBar() এর সাথে সংযুক্ত করা হয়।
আপনার অ্যাপে কোনো অতিরিক্ত ডেভেলপমেন্টের প্রয়োজন ছাড়াই ম্যাটেরিয়াল লাইব্রেরিতে হস্তাক্ষর ডেলিগেশন কনফিগার করা থাকে।
অঙ্কন পৃষ্ঠতলগুলির সাথে ওভারল্যাপ
আপনার অ্যাপে যদি এমন কোনো ড্রয়িং সারফেস থাকে যার উপরে একটি টেক্সট ফিল্ড রয়েছে, তাহলে ব্যবহারকারীকে আঁকার সুযোগ দেওয়ার জন্য আপনাকে স্টাইলাস দিয়ে হাতে লেখার সুবিধাটি নিষ্ক্রিয় করতে হতে পারে। setAutoHandwritingEnabled() দেখুন।
পরীক্ষা
অ্যান্ড্রয়েড ১৪ এবং এর পরবর্তী সংস্করণের ডিভাইসগুলোতে, একটি সামঞ্জস্যপূর্ণ স্টাইলাস ইনপুট ডিভাইস এবং অ্যান্ড্রয়েড ১৪ স্টাইলাস হ্যান্ডরাইটিং এপিআই সমর্থনকারী একটি ইনপুট মেথড এডিটর (IME) থাকলে স্টাইলাস হ্যান্ডরাইটিং সমর্থিত হয়।
আপনার কাছে যদি স্টাইলাস ইনপুট ডিভাইস না থাকে, তাহলে নিম্নলিখিত অ্যান্ড্রয়েড ডিবাগ ব্রিজ (adb) কমান্ডগুলো ব্যবহার করে রুট অ্যাক্সেসযুক্ত যেকোনো ডিভাইসে (এমুলেটর সহ) স্টাইলাস ইনপুট অনুকরণ করুন:
// Android 14
adb shell setprop persist.debug.input.simulate_stylus_with_touch true && adb shell stop && adb shell start
// Android 15 and higher
// Property takes effect after screen reconfiguration such as orientation change.
adb shell setprop debug.input.simulate_stylus_with_touch true
আপনার ডিভাইসটি যদি স্টাইলাস সাপোর্ট না করে, তবে পরীক্ষার জন্য জিবোর্ড বিটা ব্যবহার করুন।
অতিরিক্ত সম্পদ
- ম্যাটেরিয়াল ডিজাইন — টেক্সট ফিল্ড
- কাস্টম টেক্সট এডিটর
