যেহেতু সব ধরনের অ্যাপে ইমোজির ব্যবহার দ্রুত বাড়ছে, তাই ইউনিকোড প্রতি বছর ইমোজির প্রমিত সেটটি হালনাগাদ করে ।
আপনার অ্যাপ যদি ইন্টারনেট কন্টেন্ট প্রদর্শন করে বা টেক্সট ইনপুটের সুযোগ দেয়, তাহলে আমরা সর্বশেষ ইমোজি ফন্টগুলো সমর্থন করার জন্য দৃঢ়ভাবে সুপারিশ করছি। অন্যথায়, পরবর্তী ইমোজিগুলো টোফু (☐) নামক একটি ছোট বর্গাকার বাক্স বা অন্য কোনো ভুলভাবে রেন্ডার করা ইমোজি সিকোয়েন্স হিসেবে প্রদর্শিত হতে পারে।
অ্যান্ড্রয়েড ভার্সন ১১ (এপিআই লেভেল ৩০) এবং এর নিচের ভার্সনগুলোতে ইমোজি ফন্ট আপডেট করা যায় না, তাই যে অ্যাপগুলো এই ভার্সনগুলোতে ইমোজি প্রদর্শন করে, সেগুলোকে ম্যানুয়ালি আপডেট করতে হবে।
নিচে আধুনিক ইমোজির কিছু উদাহরণ দেওয়া হলো।
| উদাহরণ | সংস্করণ |
|---|---|
| 🇨🇶 | ১৬.০ (সেপ্টেম্বর ২০২৪) |
| 🐦🔥 🧑🧑🧒🧒 👩🏽🦽➡️ 🇲🇶 | ১৫.১ (সেপ্টেম্বর ২০২৩) |
| 🩷 🫸🏼 🐦⬛ | ১৫.০ (সেপ্টেম্বর ২০২২) |
| 🫠 🫱🏼🫲🏿 🫰🏽 | ১৪.০ (সেপ্টেম্বর ২০২১) |
| 😶🌫️ 🧔🏻♀️ 🧑🏿❤️🧑🏾 | ১৩.১ (সেপ্টেম্বর ২০২০) |
| 🥲 🥷🏿 🐻❄️ | ১৩.০ (মার্চ ২০২০) |
| 🧑🏻🦰 🧑🏿🦯 👩🏻🤝👩🏼 | ১২.১ (অক্টোবর ২০১৯) |
| 🦩 🦻🏿 👩🏼🤝👩🏻 | ১২.০ (ফেব্রুয়ারি ২০১৯) |
androidx.emoji2:emoji2 লাইব্রেরিটি অ্যান্ড্রয়েডের পূর্ববর্তী সংস্করণগুলোর সাথে সহজতর ব্যাকওয়ার্ড-কম্প্যাটিবিলিটি প্রদান করে। emoji2 লাইব্রেরিটি AppCompat লাইব্রেরির একটি ডিপেন্ডেন্সি এবং এটি কাজ করার জন্য আর কোনো অতিরিক্ত কনফিগারেশনের প্রয়োজন হয় না।
কম্পোজে ইমোজি সমর্থন
BOM মার্চ ২০২৩ ( Compose UI 1.4 ) সর্বশেষ ইমোজি সংস্করণের জন্য সমর্থন নিয়ে এসেছে, যার মধ্যে API 21 পর্যন্ত পুরোনো অ্যান্ড্রয়েড সংস্করণগুলোর সাথে ব্যাকওয়ার্ড কম্প্যাটিবিলিটিও অন্তর্ভুক্ত। এই পৃষ্ঠায় ভিউ সিস্টেমে কীভাবে আধুনিক ইমোজি কনফিগার করতে হয় তা আলোচনা করা হয়েছে। আরও তথ্যের জন্য ‘Emoji in Compose’ পৃষ্ঠাটি দেখুন।
পূর্বশর্ত
আপনার অ্যাপে নতুন ইমোজিগুলো সঠিকভাবে প্রদর্শিত হচ্ছে কিনা তা নিশ্চিত করতে, অ্যান্ড্রয়েড ১০ (এপিআই লেভেল ২৯) বা তার নিম্নতর সংস্করণের কোনো ডিভাইসে এটি চালু করুন। এই পৃষ্ঠায় আধুনিক ইমোজিগুলো রয়েছে যা আপনি পরীক্ষার জন্য প্রদর্শন করতে পারেন।
সর্বশেষ ইমোজি সমর্থন করতে AppCompat ব্যবহার করুন।
AppCompat ১.৪-এ ইমোজির সমর্থন অন্তর্ভুক্ত করা হয়েছে।
AppCompat ব্যবহার করে ইমোজি সমর্থন করতে, নিম্নলিখিতগুলি করুন:
আপনার মডিউলটি
AppCompatলাইব্রেরির 1.4.0-alpha01 বা তার উচ্চতর সংস্করণের উপর নির্ভরশীল কিনা তা যাচাই করুন।build.gradle // Ensure version is 1.4.0-alpha01 or higher. implementation "androidx.appcompat:appcompat.$appcompatVersion"নিশ্চিত করুন যে টেক্সট প্রদর্শনকারী সমস্ত অ্যাক্টিভিটি
AppCompatActivityক্লাসকে এক্সটেন্ড করে।কোটলিন
MyActivity.kt class MyActivity: AppCompatActivity { ... }
জাভা
MyActivity.java class MyActivity extends AppCompatActivity { ... }
অ্যান্ড্রয়েড ১০ বা তার নিম্নতর সংস্করণের কোনো ডিভাইসে আপনার অ্যাপটি চালু করে এবং নিম্নলিখিত টেস্ট স্ট্রিংটি প্রদর্শন করে আপনার ইন্টিগ্রেশনটি পরীক্ষা করুন। নিশ্চিত করুন যে সমস্ত অক্ষর সঠিকভাবে প্রদর্শিত হচ্ছে।
- ১৬.০: , , 🇨🇶
- ১৫.১: 🐦🔥, 🧑🧑🧒🧒, 👩🏽🦽➡️, 🇲🇶
- ১৫.০: 🩷, 🫸🏼, 🐦⬛
- ১৪.০: 🫠, 🫱🏼🫲🏿, 🫰🏽
- ১৩.১: 😶🌫️, 🧔🏻♀️, 🧑🏿❤️🧑🏾
- ১৩.০: 🥲, 🥷🏿, 🐻❄️
- ১২.১: 🧑🏻🦰, 🧑🏿🦯, 👩🏻🤝👩🏼
- ১২.০: 🦩, 🦻🏿, 👩🏼🤝👩🏻
আপনার অ্যাপটি স্বয়ংক্রিয়ভাবে সেই সমস্ত ডিভাইসে পশ্চাৎ-সামঞ্জস্যপূর্ণ ইমোজি প্রদর্শন করে, যেগুলিতে emoji2 -সামঞ্জস্যপূর্ণ ডাউনলোডযোগ্য ফন্ট সরবরাহকারী রয়েছে, যেমন গুগল প্লে পরিষেবা দ্বারা চালিত ডিভাইসগুলি।
আপনার অ্যাপ যদি AppCompat ব্যবহার করে কিন্তু টোফু (☐) প্রদর্শন করে
কিছু ক্ষেত্রে, AppCompat লাইব্রেরি যোগ করা সত্ত্বেও আপনার অ্যাপ সঠিক ইমোজির পরিবর্তে টোফু প্রদর্শন করতে পারে। এর সম্ভাব্য ব্যাখ্যা ও সমাধান নিচে দেওয়া হলো।
আপনি অ্যাপটি সম্প্রতি ফ্ল্যাশ করা কোনো ডিভাইসে বা নতুন কোনো এমুলেটরে চালাচ্ছেন।
অ্যাপটি চালু হওয়ার সময় হতে পারে এমন যেকোনো ফন্ট ক্যাশিং মুছে ফেলার জন্য এর গুগল প্লে সার্ভিসেস ডেটা ক্লিয়ার করুন। এতে সাধারণত কয়েক ঘণ্টার মধ্যে সমস্যাটির সমাধান হয়ে যায়।
অ্যাপের ডেটা মুছে ফেলতে, নিম্নলিখিতগুলি করুন:
আপনার অ্যান্ড্রয়েড ডিভাইসে সেটিংস খুলুন।
অ্যাপস ও নোটিফিকেশন- এ ট্যাপ করুন।
সব অ্যাপ দেখুন অথবা অ্যাপের তথ্য-তে ট্যাপ করুন।
অ্যাপগুলো স্ক্রল করুন এবং গুগল প্লে সার্ভিসেস-এ ট্যাপ করুন।
স্টোরেজ ও ক্যাশে ট্যাপ করুন।
ক্যাশে সাফ করুন।
আপনার অ্যাপটি AppCompat টেক্সট-সম্পর্কিত ক্লাস ব্যবহার করছে না।
এটি ঘটতে পারে যদি আপনি AppCompatActivity এক্সটেন্ড না করেন অথবা কোডের মাধ্যমে TextView মতো কোনো ভিউ ইনস্ট্যানশিয়েট করেন। নিম্নলিখিত বিষয়গুলো যাচাই করুন:
- অ্যাক্টিভিটিটি
AppCompatActivityএক্সটেন্ড করে। - কোডে ভিউ তৈরি করার সময় সঠিক
AppCompatসাবক্লাসটি ব্যবহার করুন।
AppCompatActivity XML ইনফ্লেট করার সময় TextView পরিবর্তে স্বয়ংক্রিয়ভাবে AppCompatTextView ইনফ্লেট করে, তাই আপনার XML আপডেট করার প্রয়োজন নেই।
পরীক্ষার ফোনটি ডাউনলোডযোগ্য ফন্ট সমর্থন করে না।
যাচাই করুন যে DefaultEmojiCompatConfig.create একটি নন-নাল কনফিগারেশন রিটার্ন করে।
পূর্ববর্তী এপিআই স্তরের একটি এমুলেটর গুগল প্লে পরিষেবাগুলি আপগ্রেড করেনি।
আগের এপিআই লেভেলের কোনো এমুলেটর ব্যবহার করার সময়, ফন্ট প্রোভাইডারটি খুঁজে পাওয়ার জন্য emoji2 এর সাথে থাকা গুগল প্লে সার্ভিসগুলো আপডেট করার প্রয়োজন হতে পারে। এটি করার জন্য, এমুলেটরের গুগল প্লে স্টোরে লগ ইন করুন।
একটি সামঞ্জস্যপূর্ণ সংস্করণ ইনস্টল করা আছে কিনা তা যাচাই করতে, নিম্নলিখিতগুলি করুন:
নিম্নলিখিত কমান্ডটি চালান:
adb shell dumpsys package com.google.android.gms | grep versionযাচাই করুন যে
versionCode211200000থেকে বেশি।
AppCompat ছাড়াই ইমোজি সমর্থন করুন
যদি আপনার অ্যাপে AppCompat অন্তর্ভুক্ত করা না যায়, তবে এটি সরাসরি emoji2 ব্যবহার করতে পারে। এর জন্য আরও বেশি কাজ করতে হয়, তাই শুধুমাত্র তখনই এই পদ্ধতিটি ব্যবহার করুন যখন আপনার অ্যাপ AppCompat ব্যবহার করতে পারে না ।
AppCompat লাইব্রেরি ছাড়া ইমোজি সমর্থন করতে, নিম্নলিখিতগুলি করুন:
আপনার অ্যাপের
build.gradleফাইলেemoji2এবংemoji2-viewsঅন্তর্ভুক্ত করুন।build.gradle def emojiVersion = "1.0.0-alpha03" implementation "androidx.emoji2:emoji2:$emojiVersion" implementation "androidx.emoji2:emoji2-views:$emojiVersion"emoji2-viewsমডিউলটিTextView,Button, এবংEditTextএর সাবক্লাস প্রদান করে, যেগুলোEmojiCompatইমপ্লিমেন্ট করে। যে অ্যাপেAppCompatঅন্তর্ভুক্ত আছে, সেখানে এটি ব্যবহার করবেন না, কারণ এটি ইতিমধ্যেইEmojiCompatইমপ্লিমেন্ট করে।XML এবং কোডে—যেখানেই আপনি
TextView,EditTextবাButtonব্যবহার করেন—তার পরিবর্তেEmojiTextView,EmojiEditTextবাEmojiButtonব্যবহার করুন।activity_main.xml <androidx.emoji2.widget.EmojiTextView ... /> <androidx.emoji2.widget.EmojiEditText ... /> <androidx.emoji2.widget.EmojiButton ... />emoji2মডিউলটি অন্তর্ভুক্ত করলে, অ্যাপ চালু হওয়ার কিছুক্ষণ পরেই সিস্টেমটি ডিফল্ট ডাউনলোডযোগ্য ফন্ট প্রোভাইডার ব্যবহার করে স্বয়ংক্রিয়ভাবে ইমোজি ফন্ট লোড করে । এর জন্য আর কোনো কনফিগারেশনের প্রয়োজন নেই।আপনার ইন্টিগ্রেশন পরীক্ষা করার জন্য, অ্যান্ড্রয়েড ১১ বা তার নিম্নতর সংস্করণের কোনো ডিভাইসে আপনার অ্যাপটি চালু করুন এবং নিম্নলিখিত টেস্ট স্ট্রিংগুলো প্রদর্শন করুন। নিশ্চিত করুন যে সমস্ত অক্ষর সঠিকভাবে প্রদর্শিত হচ্ছে।
- ১৬.০: , , 🇨🇶
- ১৫.১: 🐦🔥, 🧑🧑🧒🧒, 👩🏽🦽➡️, 🇲🇶
- ১৫.০: 🩷, 🫸🏼, 🐦⬛
- ১৪.০: 🫠, 🫱🏼🫲🏿, 🫰🏽
- ১৩.১: 😶🌫️, 🧔🏻♀️, 🧑🏿❤️🧑🏾
- ১৩.০: 🥲, 🥷🏿, 🐻❄️
- ১২.১: 🧑🏻🦰, 🧑🏿🦯, 👩🏻🤝👩🏼
- ১২.০: 🦩, 🦻🏿, 👩🏼🤝👩🏻
উইজেট ছাড়া EmojiCompat ব্যবহার করুন
সঠিক ছবি রেন্ডার করার জন্য EmojiCompat EmojiSpan ব্যবহার করে। এজন্য, এটিকে যেকোনো CharSequence অবজেক্টকে EmojiSpan অবজেক্টসহ একটি Spanned অবজেক্টে রূপান্তর করতে হয়। CharSequences Spanned ইনস্ট্যান্সে রূপান্তর করার জন্য EmojiCompat ক্লাসটি process() মেথড প্রদান করে। এই মেথডটি ব্যবহার করে, আপনি ব্যাকগ্রাউন্ডে process() কল করতে এবং ফলাফল ক্যাশ করে রাখতে পারেন, যা আপনার অ্যাপের পারফরম্যান্স উন্নত করে।
কোটলিন
val processed = EmojiCompat.get().process("neutral face \uD83D\uDE10")
জাভা
CharSequence processed = EmojiCompat.get().process("neutral face \uD83D\uDE10");
ইনপুট মেথড এডিটরদের জন্য EmojiCompat ব্যবহার করুন
EmojiCompat ক্লাসটি কিবোর্ডকে সেই অ্যাপের সমর্থিত ইমোজি রেন্ডার করতে দেয়, যার সাথে কিবোর্ডটি ইন্টারঅ্যাক্ট করছে। ইনপুট মেথড এডিটর (IME) কোনো EmojiCompat ইনস্ট্যান্স একটি ইমোজি রেন্ডার করতে সক্ষম কিনা তা পরীক্ষা করার জন্য getEmojiMatch() মেথডটি ব্যবহার করতে পারে। এই মেথডটি একটি ইমোজির CharSequence গ্রহণ করে এবং যদি EmojiCompat ইমোজিটি শনাক্ত ও রেন্ডার করতে পারে, তবে এটি true রিটার্ন করে।
প্যালেটে কোন ইমোজি রেন্ডার করা হবে তা নির্ধারণ করতে, কীবোর্ডটি অ্যাপটি EmojiCompat এর কোন সংস্করণ সমর্থন করে তাও যাচাই করতে পারে। সংস্করণটি উপলব্ধ থাকলে, তা যাচাই করার জন্য কীবোর্ডটি EditorInfo.extras বান্ডেলে নিম্নলিখিত কীগুলি খুঁজতে পারে:
-
EDITOR_INFO_METAVERSION_KEY: এটি অ্যাপটি যে ইমোজি মেটাডেটার সংস্করণ ব্যবহার করে তা নির্দেশ করে। যদি এই কী-টি না থাকে, তাহলে অ্যাপটিEmojiCompatব্যবহার করছে না। -
EDITOR_INFO_REPLACE_ALL_KEY: যদি কী-টি বিদ্যমান থাকে এবং এর মান 'trueসেট করা থাকে, তাহলে অ্যাপটিEmojiCompatএমনভাবে কনফিগার করে যাতে সিস্টেমে উপস্থিত থাকা সত্ত্বেও সমস্ত ইমোজি প্রতিস্থাপন করা হয়।
EmojiCompat-এর একটি ইনস্ট্যান্স কীভাবে কনফিগার করতে হয়, সে সম্পর্কে আরও জানুন।
কাস্টম ভিউতে ইমোজি ব্যবহার করুন
যদি আপনার অ্যাপে TextView এর প্রত্যক্ষ বা পরোক্ষ সাবক্লাস হিসেবে কাস্টম ভিউ থাকে —যেমন, Button , Switch , বা EditText —এবং সেই ভিউগুলো ব্যবহারকারীর তৈরি করা কন্টেন্ট প্রদর্শন করতে পারে, তাহলে সেগুলোর প্রত্যেকটিকে অবশ্যই EmojiCompat ইমপ্লিমেন্ট করতে হবে।
আপনার অ্যাপটি AppCompat লাইব্রেরি ব্যবহার করে কিনা, তার উপর প্রক্রিয়াটি নির্ভর করে।
AppCompat ব্যবহার করে অ্যাপের জন্য কাস্টম ভিউ যোগ করুন
আপনার অ্যাপ যদি AppCompat ব্যবহার করে, তাহলে প্ল্যাটফর্ম ইমপ্লিমেন্টেশনের পরিবর্তে AppCompat ইমপ্লিমেন্টেশনটি এক্সটেন্ড করুন। AppCompat এ আপনার ভিউগুলো কীভাবে এক্সটেন্ড করবেন, তার নির্দেশিকা হিসেবে নিচের সারণিটি ব্যবহার করুন:
| প্রসারিত করার পরিবর্তে... | প্রসারিত করুন |
|---|---|
TextView | AppCompatTextView |
EditText | AppCompatEditText |
ToggleButton | AppCompatToggleButton |
Switch | SwitchCompat |
Button | AppCompatButton |
CheckedTextView | AppCompatCheckedTextView |
RadioButton | AppCompatRadioButton |
CheckBox | AppCompatCheckBox |
AutoCompleteTextView | AppCompatAutoCompleteTextView |
MultiAutoCompleteTextView | AppCompatMultiAutoCompleteTextView |
AppCompat ছাড়া অ্যাপগুলির জন্য কাস্টম ভিউ যোগ করুন
আপনার অ্যাপ যদি AppCompat ব্যবহার না করে, emoji2-views-helper মডিউলের সেই ভিউ ইন্টিগ্রেশন হেল্পারগুলো ব্যবহার করুন যেগুলো কাস্টম ভিউতে ব্যবহারের জন্য ডিজাইন করা হয়েছে। AppCompat লাইব্রেরি ইমোজি সাপোর্ট বাস্তবায়নের জন্য এই হেল্পারগুলোই ব্যবহার করে।
যেসব অ্যাপ AppCompat ব্যবহার করে না, সেগুলোর জন্য কাস্টম ভিউ সমর্থন করতে নিম্নলিখিত ধাপগুলো সম্পূর্ণ করুন।
emoji2-views-helperলাইব্রেরিটি যোগ করুন:implementation "androidx.emoji2:emoji2-views-helper:$emojiVersion"আপনার অ্যাপের কাস্টম ভিউতে
EmojiTextViewHelperবাEmojiEditTextHelperঅন্তর্ভুক্ত করতে নির্দেশাবলী অনুসরণ করুন।অ্যান্ড্রয়েড ১০ বা তার নিম্নতর সংস্করণের কোনো ডিভাইসে আপনার অ্যাপটি চালু করে এবং নিম্নলিখিত টেস্ট স্ট্রিংটি প্রদর্শন করে আপনার ইন্টিগ্রেশনটি পরীক্ষা করুন। নিশ্চিত করুন যে সমস্ত অক্ষর সঠিকভাবে প্রদর্শিত হচ্ছে।
- ১৬.০: , , 🇨🇶
- ১৫.১: 🐦🔥, 🧑🧑🧒🧒, 👩🏽🦽➡️, 🇲🇶
- ১৫.০: 🩷, 🫸🏼, 🐦⬛
- ১৪.০: 🫠, 🫱🏼🫲🏿, 🫰🏽
- ১৩.১: 😶🌫️, 🧔🏻♀️, 🧑🏿❤️🧑🏾
- ১৩.০: 🥲, 🥷🏿, 🐻❄️
- ১২.১: 🧑🏻🦰, 🧑🏿🦯, 👩🏻🤝👩🏼
- ১২.০: 🦩, 🦻🏿, 👩🏼🤝👩🏻
ইমোজি২ পরিচালনার জন্য ঐচ্ছিক বৈশিষ্ট্য
আপনার অ্যাপে emoji2 লাইব্রেরিটি অন্তর্ভুক্ত করার পর, আপনি এই বিভাগে বর্ণিত ঐচ্ছিক বৈশিষ্ট্যগুলো যোগ করতে পারবেন।
ভিন্ন কোনো ফন্ট অথবা ডাউনলোডযোগ্য ফন্ট প্রোভাইডার ব্যবহার করার জন্য emoji2 কনফিগার করুন।
emoji2 অন্য কোনো ফন্ট বা ডাউনলোডযোগ্য ফন্ট প্রোভাইডার ব্যবহার করার জন্য কনফিগার করতে, নিম্নলিখিত পদক্ষেপগুলো অনুসরণ করুন:
আপনার ম্যানিফেস্টে নিম্নলিখিতটি যোগ করে
EmojiCompatInitializerনিষ্ক্রিয় করুন:<provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" android:exported="false" tools:node="merge"> <meta-data android:name="androidx.emoji2.text.EmojiCompatInitializer" tools:node="remove" /> </provider>নিম্নলিখিতগুলির মধ্যে যেকোনো একটি করুন:
ডিফল্ট কনফিগারেশন ব্যবহার করতে
DefaultEmojiCompatConfiguration.create(context)কল করুন।অন্য উৎস থেকে ফন্ট লোড করার জন্য
EmojiCompat.Configব্যবহার করে আপনার নিজস্ব কনফিগারেশন তৈরি করুন। এই ক্লাসটি আপনারEmojiCompatআচরণ পরিবর্তন করার জন্য বিভিন্ন অপশন প্রদান করে, যা পরবর্তী বিভাগে বর্ণনা করা হয়েছে।
আপনার EmojiCompat-এর আচরণ পরিবর্তন করুন
আপনি EmojiCompat আচরণ পরিবর্তন করতে EmojiCompat.Config এর একটি ইনস্ট্যান্স ব্যবহার করতে পারেন।
সবচেয়ে গুরুত্বপূর্ণ কনফিগারেশন অপশনটি হলো setMetadataLoadStrategy() , যা নিয়ন্ত্রণ করে EmojiCompat কখন ফন্ট লোড করবে। EmojiCompat.load() কল করার সাথে সাথেই ফন্ট লোডিং শুরু হয় এবং এটি প্রয়োজনীয় ডাউনলোডগুলো চালু করে। আপনার অ্যাপ নিজস্ব থ্রেড সরবরাহ না করলে, সিস্টেম ফন্ট ডাউনলোডের জন্য একটি থ্রেড তৈরি করে।
LOAD_STRATEGY_MANUAL আপনাকে নিয়ন্ত্রণ করতে দেয় কখন EmojiCompat.load() কল করা হবে, এবং LOAD_STRATEGY_DEFAULT EmojiCompat.init() কলে লোডিংকে সিনক্রোনাসভাবে শুরু করে।
বেশিরভাগ অ্যাপ ফন্ট লোডিংয়ের থ্রেড এবং সময় নিয়ন্ত্রণ করার জন্য LOAD_STRATEGY_MANUAL ব্যবহার করে। স্টার্টআপ ল্যাটেন্সি এড়ানোর জন্য আপনার অ্যাপকে অবশ্যই প্রথম স্ক্রিন প্রদর্শিত হওয়ার পর পর্যন্ত লোডিং স্থগিত রাখতে হবে। EmojiCompatInitializer এই পদ্ধতি অনুসরণ করে এবং প্রথম স্ক্রিন পুনরায় চালু হওয়ার পর পর্যন্ত ইমোজি ফন্ট লোড করা স্থগিত রাখে।
কনফিগারেশনের অন্যান্য দিকগুলো সেট করতে বেস ক্লাসের নিম্নলিখিত মেথডগুলো ব্যবহার করুন:
-
setReplaceAll(): এটি নির্ধারণ করে যেEmojiCompatখুঁজে পাওয়া সমস্ত ইমোজিকেEmojiSpanএর ইনস্ট্যান্স দিয়ে প্রতিস্থাপন করবে কিনা। ডিফল্টরূপে, যখনEmojiCompatঅনুমান করে যে সিস্টেমটি একটি ইমোজি রেন্ডার করতে পারে, তখন এটি সেই ইমোজিটি প্রতিস্থাপন করে না। যখন এটি 'trueসেট করা হয়, তখনEmojiCompatসমস্ত ইমোজিকেEmojiSpanঅবজেক্ট দিয়ে প্রতিস্থাপন করে। -
setEmojiSpanIndicatorEnabled(): এটি নির্দেশ করে যেEmojiCompatকোনো ইমোজিকে একটিEmojiSpanঅবজেক্ট দিয়ে প্রতিস্থাপন করবে কি না। যখন এর মানtrueসেট করা হয়, তখনEmojiCompat,EmojiSpanটির জন্য একটি ব্যাকগ্রাউন্ড অঙ্কন করে। এই মেথডটি মূলত ডিবাগিংয়ের উদ্দেশ্যে ব্যবহৃত হয়। -
setEmojiSpanIndicatorColor: একটিEmojiSpanনির্দেশ করার জন্য রঙ নির্ধারণ করে। এর ডিফল্ট মান হলোGREEN। -
registerInitCallback(): কোনো অ্যাপকেEmojiCompatইনিশিয়ালাইজেশনের অবস্থা সম্পর্কে অবহিত করে।
প্রারম্ভিক শ্রোতা যোগ করুন
EmojiCompat এবং EmojiCompat.Config ক্লাসগুলো ইনিশিয়ালাইজেশন কলব্যাক রেজিস্টার ও আনরেজিস্টার করার জন্য registerInitCallback() এবং unregisterInitCallback() মেথড প্রদান করে। আপনার অ্যাপ এই কলব্যাকগুলো ব্যবহার করে ব্যাকগ্রাউন্ড থ্রেডে বা কাস্টম ভিউতে ইমোজি প্রসেস করার আগে EmojiCompat ইনিশিয়ালাইজ হওয়া পর্যন্ত অপেক্ষা করে।
এই মেথডগুলো ব্যবহার করতে, EmojiCompat.InitCallback ক্লাসের একটি ইনস্ট্যান্স তৈরি করুন। এই মেথডগুলো কল করুন এবং EmojiCompat.InitCallback ক্লাসের ইনস্ট্যান্সটি পাস করুন। ইনিশিয়ালাইজেশন সফল হলে, EmojiCompat ক্লাসটি onInitialized() মেথডটি কল করে। লাইব্রেরিটি ইনিশিয়ালাইজ করতে ব্যর্থ হলে, EmojiCompat ক্লাসটি onFailed() মেথডটি কল করে।
যেকোনো সময়ে প্রারম্ভিক অবস্থা পরীক্ষা করতে, getLoadState() মেথডটি কল করুন। এই মেথডটি নিম্নলিখিত মানগুলির মধ্যে একটি রিটার্ন করে: LOAD_STATE_LOADING , LOAD_STATE_SUCCEEDED , অথবা LOAD_STATE_FAILED ।
ইমোজি২ দিয়ে বান্ডেল করা ফন্ট সমর্থন করুন
আপনি আপনার অ্যাপে একটি ইমোজি ফন্ট যুক্ত করতে emoji2-bundled আর্টিফ্যাক্টটি ব্যবহার করতে পারেন। তবে, NotoColorEmoji ফন্টটির সাইজ ১০ মেগাবাইটের বেশি হওয়ায়, আমরা দৃঢ়ভাবে সুপারিশ করি যে সম্ভব হলে আপনার অ্যাপ যেন ডাউনলোডযোগ্য ফন্ট ব্যবহার করে। emoji2-bundled আর্টিফ্যাক্টটি এমন ডিভাইসের অ্যাপের জন্য তৈরি করা হয়েছে, যেগুলো ডাউনলোডযোগ্য ফন্ট সাপোর্ট করে না।
emoji2-bundled আর্টিফ্যাক্টটি ব্যবহার করতে, নিম্নলিখিতগুলি করুন:
emoji2-bundledএবংemoji2আর্টিফ্যাক্ট অন্তর্ভুক্ত করুন:implementation "androidx.emoji2:emoji2:$emojiVersion" implementation "androidx.emoji2:emoji2-bundled:$emojiVersion"বান্ডেল করা কনফিগারেশন ব্যবহার করার জন্য
emoji2কনফিগার করুন:কোটলিন
EmojiCompat.init(BundledEmojiCompatConfig(context))
জাভা
EmojiCompat.init(new BundledEmojiCompatConfig(context));
AppCompatসহ বা ছাড়াemojicompatঅন্তর্ভুক্ত করার জন্য পূর্ববর্তী ধাপগুলো অনুসরণ করে ইন্টিগ্রেশনটি পরীক্ষা করুন। নিশ্চিত করুন যে টেস্ট স্ট্রিংটি সঠিকভাবে প্রদর্শিত হচ্ছে।- ১৬.০: , , 🇨🇶
- ১৫.১: 🐦🔥, 🧑🧑🧒🧒, 👩🏽🦽➡️, 🇲🇶
- ১৫.০: 🩷, 🫸🏼, 🐦⬛
- ১৪.০: 🫠, 🫱🏼🫲🏿, 🫰🏽
- ১৩.১: 😶🌫️, 🧔🏻♀️, 🧑🏿❤️🧑🏾
- ১৩.০: 🥲, 🥷🏿, 🐻❄️
- ১২.১: 🧑🏻🦰, 🧑🏿🦯, 👩🏻🤝👩🏼
- ১২.০: 🦩, 🦻🏿, 👩🏼🤝👩🏻
স্বয়ংক্রিয় EmojiCompat কনফিগারেশনের প্রভাব
সিস্টেমটি স্টার্টআপ লাইব্রেরি, EmojiCompatInitializer এবং DefaultEmojiCompatConfig ব্যবহার করে ডিফল্ট কনফিগারেশন প্রয়োগ করে।
আপনার অ্যাপে প্রথম অ্যাক্টিভিটি পুনরায় শুরু হওয়ার পর, ইনিশিয়ালাইজার ইমোজি ফন্ট লোড করার সময়সূচী নির্ধারণ করে। এই সংক্ষিপ্ত বিলম্ব আপনার অ্যাপকে ব্যাকগ্রাউন্ড থ্রেডে ফন্ট লোড হওয়ার কারণে সৃষ্ট কোনো সম্ভাব্য বিলম্ব ছাড়াই তার প্রাথমিক বিষয়বস্তু প্রদর্শন করতে দেয়।
DefaultEmojiCompatConfig এমন একটি সিস্টেম-ইনস্টল করা ডাউনলোডযোগ্য ফন্ট প্রোভাইডার খোঁজে যা EmojiCompat ইন্টারফেসটি প্রয়োগ করে, যেমন গুগল প্লে সার্ভিসেস। গুগল প্লে সার্ভিসেস দ্বারা চালিত ডিভাইসগুলিতে, এটি গুগল প্লে সার্ভিসেস ব্যবহার করে ফন্টটি লোড করে।
ইনিশিয়ালাইজারটি ইমোজি ফন্ট লোড করার জন্য একটি ব্যাকগ্রাউন্ড থ্রেড তৈরি করে, এবং ফন্ট ডাউনলোড হতে টাইম আউট হওয়ার আগে ১০ সেকেন্ড পর্যন্ত সময় লাগতে পারে। ফন্টটি ডাউনলোড হয়ে যাওয়ার পর, ব্যাকগ্রাউন্ড থ্রেডে EmojiCompat ইনিশিয়ালাইজ করতে প্রায় ১৫০ মিলিসেকেন্ড সময় লাগে।
আপনি EmojiCompatInitializer নিষ্ক্রিয় করলেও, EmojiCompat এর প্রারম্ভিকীকরণ স্থগিত রাখুন। আপনি যদি ম্যানুয়ালি EmojiCompat কনফিগার করেন , তবে প্রথম স্ক্রিন লোডের সাথে ব্যাকগ্রাউন্ডে প্রতিযোগিতা এড়াতে আপনার অ্যাপের প্রথম স্ক্রিনটি প্রদর্শিত হওয়ার পরে EmojiCompat.load() কল করুন।
লোড হওয়ার পর, ইমোজি মেটাডেটা ধারণ করার জন্য EmojiCompat প্রায় ৩০০ কিলোবাইট র্যাম ব্যবহার করে।
