ইমোজির স্ট্যান্ডার্ড সেট ইউনিকোড দ্বারা প্রতি বছর রিফ্রেশ করা হয়, কারণ ইমোজির ব্যবহার সব ধরনের অ্যাপের জন্য দ্রুত বাড়ছে।
যদি আপনার অ্যাপ ইন্টারনেট সামগ্রী প্রদর্শন করে বা পাঠ্য ইনপুট প্রদান করে, আমরা দৃঢ়ভাবে সর্বশেষ ইমোজি ফন্ট সমর্থন করার পরামর্শ দিই। অন্যথায়, পরবর্তীতে ইমোজি একটি ছোট বর্গাকার বক্স হিসেবে প্রদর্শিত হতে পারে যাকে বলা হয় tofu (☐) বা অন্য ভুলভাবে রেন্ডার করা ইমোজি সিকোয়েন্স।
অ্যান্ড্রয়েড সংস্করণ 11 (এপিআই স্তর 30) এবং নিম্নতর ইমোজি ফন্ট আপডেট করতে পারে না, তাই সেই সংস্করণগুলিতে প্রদর্শিত অ্যাপগুলিকে ম্যানুয়ালি আপডেট করতে হবে।
নিম্নে আধুনিক ইমোজির উদাহরণ দেওয়া হল।
উদাহরণ | সংস্করণ |
---|---|
🫠 🫱🏼🫲🏿 🫰🏽 | 14.0 (সেপ্টেম্বর 2021) |
😶🌫️ 🧔🏻♀️ 🧑🏿❤️🧑🏾 | 13.1 (সেপ্টেম্বর 2020) |
🥲 🥷🏿 🐻❄️ | 13.0 (মার্চ 2020) |
🧑🏻🦰 🧑🏿🦯 👩🏻🤝👩🏼 | 12.1 (অক্টোবর 2019) |
🦩 🦻🏿 👩🏼🤝👩🏻 | 12.0 (ফেব্রুয়ারি 2019) |
androidx.emoji2:emoji2
লাইব্রেরি অ্যান্ড্রয়েডের নিম্ন সংস্করণের সাথে সহজতর ব্যাকওয়ার্ড-কম্প্যাটিবিলিটি প্রদান করে। emoji2
লাইব্রেরি হল AppCompat
লাইব্রেরির নির্ভরতা এবং কাজ করার জন্য আর কোন কনফিগারেশনের প্রয়োজন নেই।
রচনায় ইমোজি সমর্থন
BOM মার্চ 2023 ( কম্পোজ UI 1.4 ) সর্বশেষ ইমোজি সংস্করণের জন্য সমর্থন নিয়ে আসে, যার মধ্যে পুরানো অ্যান্ড্রয়েড সংস্করণগুলির সাথে API 21-এ পিছন দিকের সামঞ্জস্য রয়েছে৷ এই পৃষ্ঠাটি ভিউ সিস্টেমে আধুনিক ইমোজিগুলি কীভাবে কনফিগার করতে হয় তা কভার করে৷ আরও তথ্যের জন্য রচনা পৃষ্ঠায় ইমোজি দেখুন।
পূর্বশর্ত
আপনার অ্যাপটি সঠিকভাবে নতুন ইমোজি প্রদর্শন করছে তা নিশ্চিত করতে, এটিকে Android 10 (API লেভেল 29) বা তার নিচের সংস্করণে চলমান ডিভাইসে লঞ্চ করুন। এই পৃষ্ঠায় আধুনিক ইমোজি রয়েছে যা আপনি পরীক্ষার জন্য প্রদর্শন করতে পারেন।
সর্বশেষ ইমোজি সমর্থন করতে AppCompat ব্যবহার করুন
AppCompat
1.4 ইমোজির জন্য সমর্থন অন্তর্ভুক্ত করে।
ইমোজি সমর্থন করার জন্য 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 { ... }
Android 10 বা তার নিচের সংস্করণে চলমান একটি ডিভাইসে আপনার অ্যাপ চালু করে এবং নিম্নলিখিত পরীক্ষার স্ট্রিং প্রদর্শন করে আপনার ইন্টিগ্রেশন পরীক্ষা করুন। সব অক্ষর সঠিকভাবে রেন্ডার নিশ্চিত করুন.
- 14.0: 🫠, 🫱🏼🫲🏿, 🫰🏽
- 13.1: 😶🌫️, 🧔🏻♀️, 🧑🏿❤️🧑🏾
- 13.0: 🥲, 🥷🏿, 🐻❄️
- 12.1: 🧑🏻🦰, 🧑🏿🦯, 👩🏻🤝👩🏼
- 12.0: 🦩, 🦻🏿, 👩🏼🤝👩🏻
আপনার অ্যাপ স্বয়ংক্রিয়ভাবে সমস্ত ডিভাইসে ব্যাকওয়ার্ড-সামঞ্জস্যপূর্ণ ইমোজি প্রদর্শন করে যেগুলি emoji2
-সামঞ্জস্যপূর্ণ ডাউনলোডযোগ্য ফন্ট প্রদানকারী প্রদান করে, যেমন Google Play পরিষেবা দ্বারা চালিত ডিভাইসগুলি৷
যদি আপনার অ্যাপ অ্যাপকম্প্যাট ব্যবহার করে কিন্তু টোফু প্রদর্শন করে (☐)
কিছু ক্ষেত্রে, আপনার অ্যাপ সঠিক ইমোজির পরিবর্তে tofu প্রদর্শন করতে পারে, এমনকি যদি আপনি AppCompat
লাইব্রেরি যোগ করেন। নিম্নলিখিত সম্ভাব্য ব্যাখ্যা এবং সমাধান.
আপনি সম্প্রতি ফ্ল্যাশ করা ডিভাইস বা একটি নতুন এমুলেটরে অ্যাপটি চালাচ্ছেন
স্টার্টআপের সময় ঘটতে পারে এমন কোনো ফন্ট ক্যাশিং সাফ করতে অ্যাপের Google Play পরিষেবার ডেটা সাফ করুন। এটি সাধারণত কয়েক ঘন্টা পরে সমস্যার সমাধান করে।
অ্যাপ ডেটা সাফ করতে, নিম্নলিখিতগুলি করুন:
আপনার Android-চালিত ডিভাইসে সেটিংস খুলুন।
অ্যাপ্লিকেশান এবং বিজ্ঞপ্তিগুলি আলতো চাপুন৷
সমস্ত অ্যাপ বা অ্যাপের তথ্য দেখুন ট্যাপ করুন।
অ্যাপগুলির মাধ্যমে স্ক্রোল করুন এবং Google Play পরিষেবাগুলিতে আলতো চাপুন৷
স্টোরেজ এবং ক্যাশে আলতো চাপুন।
ক্যাশে সাফ করুন আলতো চাপুন।
আপনার অ্যাপ একটি AppCompat পাঠ্য-সম্পর্কিত ক্লাস ব্যবহার করছে না
এটি ঘটতে পারে যদি আপনি AppCompatActivity
প্রসারিত না করেন বা যদি আপনি কোডে একটি ভিউ ইনস্ট্যান্টিয়েট করেন, যেমন TextView
। নিম্নলিখিত জন্য পরীক্ষা করুন:
- কার্যকলাপ
AppCompatActivity
প্রসারিত করে। - কোডে ভিউ তৈরি করলে, সঠিক
AppCompat
সাবক্লাস ব্যবহার করুন।
XML স্ফীত করার সময় AppCompatActivity
স্বয়ংক্রিয়ভাবে TextView
এর জায়গায় AppCompatTextView
স্ফীত করে, তাই আপনার XML আপডেট করার প্রয়োজন নেই।
টেস্ট ফোন ডাউনলোডযোগ্য ফন্ট সমর্থন করে না
যাচাই করুন যে DefaultEmojiCompatConfig.create
একটি নন-নাল কনফিগারেশন প্রদান করে।
আগের API স্তরের একটি এমুলেটর Google Play পরিষেবাগুলি আপগ্রেড করেনি৷
পূর্ববর্তী API স্তরে একটি এমুলেটর ব্যবহার করার সময়, ফন্ট প্রদানকারীকে খুঁজে পেতে আপনাকে emoji2
এর জন্য বান্ডিল করা Google Play পরিষেবাগুলি আপডেট করতে হতে পারে। এটি করতে, এমুলেটরে গুগল প্লে স্টোরে লগ ইন করুন।
একটি সামঞ্জস্যপূর্ণ সংস্করণ ইনস্টল করা হয়েছে তা যাচাই করতে, নিম্নলিখিতগুলি করুন:
নিম্নলিখিত কমান্ড চালান:
adb shell dumpsys package com.google.android.gms | grep version
versionCode
211200000
এর চেয়ে বেশি তা পরীক্ষা করুন।
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
মডিউল অন্তর্ভুক্ত করার মাধ্যমে, সিস্টেমটি অ্যাপ শুরু হওয়ার পরপরই স্বয়ংক্রিয়ভাবে ইমোজি ফন্ট লোড করতে ডিফল্ট ডাউনলোডযোগ্য ফন্ট প্রদানকারী ব্যবহার করে। আর কোন কনফিগারেশন প্রয়োজন নেই.আপনার ইন্টিগ্রেশন পরীক্ষা করতে, Android 11 বা তার নিচের সংস্করণে চলমান এবং নিম্নলিখিত পরীক্ষার স্ট্রিংগুলি প্রদর্শন করে এমন একটি ডিভাইসে আপনার অ্যাপ চালু করুন। সব অক্ষর সঠিকভাবে রেন্ডার নিশ্চিত করুন.
- 14.0: 🫠, 🫱🏼🫲🏿, 🫰🏽
- 13.1: 😶🌫️, 🧔🏻♀️, 🧑🏿❤️🧑🏾
- 13.0: 🥲, 🥷🏿, 🐻❄️
- 12.1: 🧑🏻🦰, 🧑🏿🦯, 👩🏻🤝👩🏼
- 12.0: 🦩, 🦻🏿, 👩🏼🤝👩🏻
উইজেট ছাড়া ইমোজিকম্প্যাট ব্যবহার করুন
EmojiCompat
সঠিক ছবি রেন্ডার করতে EmojiSpan
ব্যবহার করে। সুতরাং, এটিকে যে কোনো প্রদত্ত CharSequence
অবজেক্টকে EmojiSpan
অবজেক্টের সাথে Spanned
অবজেক্টে রূপান্তর করতে হবে। EmojiCompat ক্লাস CharSequences
Spanned
ইনস্ট্যান্সে রূপান্তর করার process()
পদ্ধতি প্রদান করে। এই পদ্ধতিটি ব্যবহার করে, আপনি পটভূমিতে process()
কল করতে পারেন এবং ফলাফলগুলি ক্যাশে করতে পারেন, যা আপনার অ্যাপের কার্যকারিতা উন্নত করে।
কোটলিন
val processed = EmojiCompat.get().process("neutral face \uD83D\uDE10")
জাভা
CharSequence processed = EmojiCompat.get().process("neutral face \uD83D\uDE10");
ইনপুট পদ্ধতি সম্পাদকদের জন্য EmojiCompat ব্যবহার করুন
EmojiCompat
ক্লাস কীবোর্ডগুলিকে ইমোজি রেন্ডার করতে দেয় যে অ্যাপের সাথে তারা ইন্টারঅ্যাক্ট করছে। ইনপুট মেথড এডিটররা (IMEs) getEmojiMatch()
পদ্ধতি ব্যবহার করে EmojiCompat
এর একটি ইমোজি রেন্ডার করতে সক্ষম কিনা তা পরীক্ষা করতে পারে। এই পদ্ধতিটি একটি ইমোজির একটি CharSequence
নেয় এবং যদি EmojiCompat
ইমোজি সনাক্ত করতে এবং রেন্ডার করতে পারে তবে তা true
হয়৷
প্যালেটে কোন ইমোজি রেন্ডার করতে হবে তা নির্ধারণ করতে কীবোর্ডটি EmojiCompat
সংস্করণটিও পরীক্ষা করতে পারে যা অ্যাপটি সমর্থন করে। সংস্করণটি পরীক্ষা করতে, যদি উপলব্ধ থাকে, কীবোর্ডটি EditorInfo.extras
বান্ডেলে নিম্নলিখিত কীগুলি সন্ধান করতে পারে:
-
EDITOR_INFO_METAVERSION_KEY
: অ্যাপটি ব্যবহার করে এমন ইমোজি মেটাডেটার সংস্করণ উপস্থাপন করে। যদি এই কীটি বিদ্যমান না থাকে, তাহলে অ্যাপটিEmojiCompat
ব্যবহার করছে না। -
EDITOR_INFO_REPLACE_ALL_KEY
: যদি কীটি বিদ্যমান থাকে এবংtrue
সেট করা থাকে, তাহলে অ্যাপটি সমস্ত ইমোজি প্রতিস্থাপন করতে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
অন্তর্ভুক্ত করতে নির্দেশাবলী অনুসরণ করুন।Android 10 বা তার নিচের সংস্করণে চলমান একটি ডিভাইসে আপনার অ্যাপ চালু করে এবং নিম্নলিখিত পরীক্ষার স্ট্রিং প্রদর্শন করে আপনার ইন্টিগ্রেশন পরীক্ষা করুন। সব অক্ষর সঠিকভাবে রেন্ডার নিশ্চিত করুন.
- 14.0: 🫠, 🫱🏼🫲🏿, 🫰🏽
- 13.1: 😶🌫️, 🧔🏻♀️, 🧑🏿❤️🧑🏾
- 13.0: 🥲, 🥷🏿, 🐻❄️
- 12.1: 🧑🏻🦰, 🧑🏿🦯, 👩🏻🤝👩🏼
- 12.0: 🦩, 🦻🏿, 👩🏼🤝👩🏻
ইমোজি2 পরিচালনার জন্য ঐচ্ছিক বৈশিষ্ট্য
আপনি আপনার অ্যাপে emoji2
লাইব্রেরি অন্তর্ভুক্ত করার পরে, আপনি এই বিভাগে বর্ণিত ঐচ্ছিক বৈশিষ্ট্যগুলি যোগ করতে পারেন।
একটি ভিন্ন ফন্ট বা ডাউনলোডযোগ্য ফন্ট প্রদানকারী ব্যবহার করতে ইমোজি2 কনফিগার করুন
একটি ভিন্ন ফন্ট বা ডাউনলোডযোগ্য ফন্ট প্রদানকারী ব্যবহার করার জন্য 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.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
ফন্টটি 10 MB এর বেশি, তাই আমরা দৃঢ়ভাবে সুপারিশ করছি যে আপনার অ্যাপটি সম্ভব হলে ডাউনলোডযোগ্য ফন্ট ব্যবহার করুন। 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
অন্তর্ভুক্ত করার জন্য পূর্ববর্তী পদক্ষেপগুলি অনুসরণ করে ইন্টিগ্রেশন পরীক্ষা করুন৷ পরীক্ষা স্ট্রিং সঠিকভাবে প্রদর্শন নিশ্চিত করুন.- 14.0: 🫠, 🫱🏼🫲🏿, 🫰🏽
- 13.1: 😶🌫️, 🧔🏻♀️, 🧑🏿❤️🧑🏾
- 13.0: 🥲, 🥷🏿, 🐻❄️
- 12.1: 🧑🏻🦰, 🧑🏿🦯, 👩🏻🤝👩🏼
- 12.0: 🦩, 🦻🏿, 👩🏼🤝👩🏻
স্বয়ংক্রিয় ইমোজিকম্প্যাট কনফিগারেশনের প্রভাব
সিস্টেমটি স্টার্টআপ লাইব্রেরি, EmojiCompatInitializer
এবং DefaultEmojiCompatConfig
ব্যবহার করে ডিফল্ট কনফিগারেশন প্রয়োগ করে।
আপনার অ্যাপে প্রথম অ্যাক্টিভিটি আবার শুরু হওয়ার পর, ইনিশিয়ালাইজার ইমোজি ফন্ট লোড করার সময়সূচী করে। এই সংক্ষিপ্ত বিলম্ব আপনার অ্যাপটিকে একটি ব্যাকগ্রাউন্ড থ্রেডে ফন্ট লোড হওয়ার কারণে কোনও সম্ভাব্য বিলম্ব ছাড়াই এর প্রাথমিক বিষয়বস্তু প্রদর্শন করতে দেয়।
DefaultEmojiCompatConfig
একটি সিস্টেম-ইনস্টল করা ডাউনলোডযোগ্য ফন্ট প্রদানকারীর সন্ধান করে যা EmojiCompat
ইন্টারফেস প্রয়োগ করে, যেমন Google Play পরিষেবা। Google Play পরিষেবাগুলি দ্বারা চালিত ডিভাইসগুলিতে, এটি Google Play পরিষেবাগুলি ব্যবহার করে ফন্ট লোড করে৷
ইনিশিয়ালাইজার ইমোজি ফন্ট লোড করার জন্য একটি ব্যাকগ্রাউন্ড থ্রেড তৈরি করে এবং ফন্ট ডাউনলোড টাইম আউট হওয়ার আগে 10 সেকেন্ড পর্যন্ত সময় নিতে পারে। ফন্টটি ডাউনলোড হওয়ার পরে, EmojiCompat
শুরু করতে একটি ব্যাকগ্রাউন্ড থ্রেডে প্রায় 150 মিলিসেকেন্ড সময় লাগে।
আপনি EmojiCompatInitializer
নিষ্ক্রিয় করলেও, EmojiCompat
এর আরম্ভকরণ স্থগিত করুন। আপনি যদি ম্যানুয়ালি EmojiCompat
কনফিগার করেন , তাহলে প্রথম স্ক্রিন লোডের সাথে পটভূমির বিরোধ এড়াতে আপনার অ্যাপের প্রথম স্ক্রীনটি প্রদর্শন করার পরে EmojiCompat.load()
এ কল করুন।
লোড করার পরে, ইমোজি মেটাডেটা ধরে রাখতে EmojiCompat
প্রায় 300 KB RAM ব্যবহার করে।
ইমোজির স্ট্যান্ডার্ড সেট ইউনিকোড দ্বারা প্রতি বছর রিফ্রেশ করা হয়, কারণ ইমোজির ব্যবহার সব ধরনের অ্যাপের জন্য দ্রুত বাড়ছে।
যদি আপনার অ্যাপ ইন্টারনেট সামগ্রী প্রদর্শন করে বা পাঠ্য ইনপুট প্রদান করে, আমরা দৃঢ়ভাবে সর্বশেষ ইমোজি ফন্ট সমর্থন করার পরামর্শ দিই। অন্যথায়, পরবর্তীতে ইমোজি একটি ছোট বর্গাকার বক্স হিসেবে প্রদর্শিত হতে পারে যাকে বলা হয় tofu (☐) বা অন্য ভুলভাবে রেন্ডার করা ইমোজি সিকোয়েন্স।
অ্যান্ড্রয়েড সংস্করণ 11 (এপিআই স্তর 30) এবং নিম্নতর ইমোজি ফন্ট আপডেট করতে পারে না, তাই সেই সংস্করণগুলিতে প্রদর্শিত অ্যাপগুলিকে ম্যানুয়ালি আপডেট করতে হবে।
নিম্নে আধুনিক ইমোজির উদাহরণ দেওয়া হল।
উদাহরণ | সংস্করণ |
---|---|
🫠 🫱🏼🫲🏿 🫰🏽 | 14.0 (সেপ্টেম্বর 2021) |
😶🌫️ 🧔🏻♀️ 🧑🏿❤️🧑🏾 | 13.1 (সেপ্টেম্বর 2020) |
🥲 🥷🏿 🐻❄️ | 13.0 (মার্চ 2020) |
🧑🏻🦰 🧑🏿🦯 👩🏻🤝👩🏼 | 12.1 (অক্টোবর 2019) |
🦩 🦻🏿 👩🏼🤝👩🏻 | 12.0 (ফেব্রুয়ারি 2019) |
androidx.emoji2:emoji2
লাইব্রেরি অ্যান্ড্রয়েডের নিম্ন সংস্করণের সাথে সহজতর ব্যাকওয়ার্ড-কম্প্যাটিবিলিটি প্রদান করে। emoji2
লাইব্রেরি হল AppCompat
লাইব্রেরির নির্ভরতা এবং কাজ করার জন্য আর কোন কনফিগারেশনের প্রয়োজন নেই।
রচনায় ইমোজি সমর্থন
BOM মার্চ 2023 ( কম্পোজ UI 1.4 ) সর্বশেষ ইমোজি সংস্করণের জন্য সমর্থন নিয়ে আসে, যার মধ্যে পুরানো অ্যান্ড্রয়েড সংস্করণগুলির সাথে API 21-এ পিছন দিকের সামঞ্জস্য রয়েছে৷ এই পৃষ্ঠাটি ভিউ সিস্টেমে আধুনিক ইমোজিগুলি কীভাবে কনফিগার করতে হয় তা কভার করে৷ আরও তথ্যের জন্য রচনা পৃষ্ঠায় ইমোজি দেখুন।
পূর্বশর্ত
আপনার অ্যাপটি সঠিকভাবে নতুন ইমোজি প্রদর্শন করছে তা নিশ্চিত করতে, এটিকে Android 10 (API লেভেল 29) বা তার নিচের সংস্করণে চলমান ডিভাইসে লঞ্চ করুন। এই পৃষ্ঠায় আধুনিক ইমোজি রয়েছে যা আপনি পরীক্ষার জন্য প্রদর্শন করতে পারেন।
সর্বশেষ ইমোজি সমর্থন করতে AppCompat ব্যবহার করুন
AppCompat
1.4 ইমোজির জন্য সমর্থন অন্তর্ভুক্ত করে।
ইমোজি সমর্থন করার জন্য 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 { ... }
Android 10 বা তার নিচের সংস্করণে চলমান একটি ডিভাইসে আপনার অ্যাপ চালু করে এবং নিম্নলিখিত পরীক্ষার স্ট্রিং প্রদর্শন করে আপনার ইন্টিগ্রেশন পরীক্ষা করুন। সব অক্ষর সঠিকভাবে রেন্ডার নিশ্চিত করুন.
- 14.0: 🫠, 🫱🏼🫲🏿, 🫰🏽
- 13.1: 😶🌫️, 🧔🏻♀️, 🧑🏿❤️🧑🏾
- 13.0: 🥲, 🥷🏿, 🐻❄️
- 12.1: 🧑🏻🦰, 🧑🏿🦯, 👩🏻🤝👩🏼
- 12.0: 🦩, 🦻🏿, 👩🏼🤝👩🏻
আপনার অ্যাপ স্বয়ংক্রিয়ভাবে সমস্ত ডিভাইসে ব্যাকওয়ার্ড-সামঞ্জস্যপূর্ণ ইমোজি প্রদর্শন করে যেগুলি emoji2
-সামঞ্জস্যপূর্ণ ডাউনলোডযোগ্য ফন্ট প্রদানকারী প্রদান করে, যেমন Google Play পরিষেবা দ্বারা চালিত ডিভাইসগুলি৷
যদি আপনার অ্যাপ অ্যাপকম্প্যাট ব্যবহার করে কিন্তু টোফু প্রদর্শন করে (☐)
কিছু ক্ষেত্রে, আপনার অ্যাপ সঠিক ইমোজির পরিবর্তে tofu প্রদর্শন করতে পারে, এমনকি যদি আপনি AppCompat
লাইব্রেরি যোগ করেন। নিম্নলিখিত সম্ভাব্য ব্যাখ্যা এবং সমাধান.
আপনি সম্প্রতি ফ্ল্যাশ করা ডিভাইস বা একটি নতুন এমুলেটরে অ্যাপটি চালাচ্ছেন
স্টার্টআপের সময় ঘটতে পারে এমন কোনো ফন্ট ক্যাশিং সাফ করতে অ্যাপের Google Play পরিষেবার ডেটা সাফ করুন। এটি সাধারণত কয়েক ঘন্টা পরে সমস্যার সমাধান করে।
অ্যাপ ডেটা সাফ করতে, নিম্নলিখিতগুলি করুন:
আপনার Android-চালিত ডিভাইসে সেটিংস খুলুন।
অ্যাপ্লিকেশান এবং বিজ্ঞপ্তিগুলি আলতো চাপুন৷
সমস্ত অ্যাপ বা অ্যাপের তথ্য দেখুন ট্যাপ করুন।
অ্যাপগুলির মাধ্যমে স্ক্রোল করুন এবং Google Play পরিষেবাগুলিতে আলতো চাপুন৷
স্টোরেজ এবং ক্যাশে আলতো চাপুন।
ক্যাশে সাফ করুন আলতো চাপুন।
আপনার অ্যাপ একটি AppCompat পাঠ্য-সম্পর্কিত ক্লাস ব্যবহার করছে না
এটি ঘটতে পারে যদি আপনি AppCompatActivity
প্রসারিত না করেন বা যদি আপনি কোডে একটি ভিউ ইনস্ট্যান্টিয়েট করেন, যেমন TextView
। নিম্নলিখিত জন্য পরীক্ষা করুন:
- কার্যকলাপ
AppCompatActivity
প্রসারিত করে। - কোডে ভিউ তৈরি করলে, সঠিক
AppCompat
সাবক্লাস ব্যবহার করুন।
XML স্ফীত করার সময় AppCompatActivity
স্বয়ংক্রিয়ভাবে TextView
এর জায়গায় AppCompatTextView
স্ফীত করে, তাই আপনার XML আপডেট করার প্রয়োজন নেই।
টেস্ট ফোন ডাউনলোডযোগ্য ফন্ট সমর্থন করে না
যাচাই করুন যে DefaultEmojiCompatConfig.create
একটি নন-নাল কনফিগারেশন প্রদান করে।
আগের API স্তরের একটি এমুলেটর Google Play পরিষেবাগুলি আপগ্রেড করেনি৷
পূর্ববর্তী API স্তরে একটি এমুলেটর ব্যবহার করার সময়, ফন্ট প্রদানকারীকে খুঁজে পেতে আপনাকে emoji2
এর জন্য বান্ডিল করা Google Play পরিষেবাগুলি আপডেট করতে হতে পারে। এটি করতে, এমুলেটরে গুগল প্লে স্টোরে লগ ইন করুন।
একটি সামঞ্জস্যপূর্ণ সংস্করণ ইনস্টল করা হয়েছে তা যাচাই করতে, নিম্নলিখিতগুলি করুন:
নিম্নলিখিত কমান্ড চালান:
adb shell dumpsys package com.google.android.gms | grep version
versionCode
211200000
এর চেয়ে বেশি তা পরীক্ষা করুন।
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
মডিউল অন্তর্ভুক্ত করার মাধ্যমে, সিস্টেমটি অ্যাপ শুরু হওয়ার পরপরই স্বয়ংক্রিয়ভাবে ইমোজি ফন্ট লোড করতে ডিফল্ট ডাউনলোডযোগ্য ফন্ট প্রদানকারী ব্যবহার করে। আর কোন কনফিগারেশন প্রয়োজন নেই.আপনার ইন্টিগ্রেশন পরীক্ষা করতে, Android 11 বা তার নিচের সংস্করণে চলমান এবং নিম্নলিখিত পরীক্ষার স্ট্রিংগুলি প্রদর্শন করে এমন একটি ডিভাইসে আপনার অ্যাপ চালু করুন। সব অক্ষর সঠিকভাবে রেন্ডার নিশ্চিত করুন.
- 14.0: 🫠, 🫱🏼🫲🏿, 🫰🏽
- 13.1: 😶🌫️, 🧔🏻♀️, 🧑🏿❤️🧑🏾
- 13.0: 🥲, 🥷🏿, 🐻❄️
- 12.1: 🧑🏻🦰, 🧑🏿🦯, 👩🏻🤝👩🏼
- 12.0: 🦩, 🦻🏿, 👩🏼🤝👩🏻
উইজেট ছাড়া ইমোজিকম্প্যাট ব্যবহার করুন
EmojiCompat
সঠিক ছবি রেন্ডার করতে EmojiSpan
ব্যবহার করে। সুতরাং, এটিকে যে কোনো প্রদত্ত CharSequence
অবজেক্টকে EmojiSpan
অবজেক্টের সাথে Spanned
অবজেক্টে রূপান্তর করতে হবে। EmojiCompat ক্লাস CharSequences
Spanned
ইনস্ট্যান্সে রূপান্তর করার process()
পদ্ধতি প্রদান করে। এই পদ্ধতিটি ব্যবহার করে, আপনি পটভূমিতে process()
কল করতে পারেন এবং ফলাফলগুলি ক্যাশে করতে পারেন, যা আপনার অ্যাপের কার্যকারিতা উন্নত করে।
কোটলিন
val processed = EmojiCompat.get().process("neutral face \uD83D\uDE10")
জাভা
CharSequence processed = EmojiCompat.get().process("neutral face \uD83D\uDE10");
ইনপুট পদ্ধতি সম্পাদকদের জন্য EmojiCompat ব্যবহার করুন
EmojiCompat
ক্লাস কীবোর্ডগুলিকে ইমোজি রেন্ডার করতে দেয় যে অ্যাপের সাথে তারা ইন্টারঅ্যাক্ট করছে। ইনপুট মেথড এডিটররা (IMEs) getEmojiMatch()
পদ্ধতি ব্যবহার করে EmojiCompat
এর একটি ইমোজি রেন্ডার করতে সক্ষম কিনা তা পরীক্ষা করতে পারে। এই পদ্ধতিটি একটি ইমোজির একটি CharSequence
নেয় এবং যদি EmojiCompat
ইমোজি সনাক্ত করতে এবং রেন্ডার করতে পারে তবে তা true
হয়৷
প্যালেটে কোন ইমোজি রেন্ডার করতে হবে তা নির্ধারণ করতে কীবোর্ডটি EmojiCompat
সংস্করণটিও পরীক্ষা করতে পারে যা অ্যাপটি সমর্থন করে। সংস্করণটি পরীক্ষা করতে, যদি উপলব্ধ থাকে, কীবোর্ডটি EditorInfo.extras
বান্ডেলে নিম্নলিখিত কীগুলি সন্ধান করতে পারে:
-
EDITOR_INFO_METAVERSION_KEY
: অ্যাপটি ব্যবহার করে এমন ইমোজি মেটাডেটার সংস্করণ উপস্থাপন করে। যদি এই কীটি বিদ্যমান না থাকে, তাহলে অ্যাপটিEmojiCompat
ব্যবহার করছে না। -
EDITOR_INFO_REPLACE_ALL_KEY
: যদি কীটি বিদ্যমান থাকে এবংtrue
সেট করা থাকে, তাহলে অ্যাপটি সমস্ত ইমোজি প্রতিস্থাপন করতে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
অন্তর্ভুক্ত করতে নির্দেশাবলী অনুসরণ করুন।Android 10 বা তার নিচের সংস্করণে চলমান একটি ডিভাইসে আপনার অ্যাপ চালু করে এবং নিম্নলিখিত পরীক্ষার স্ট্রিং প্রদর্শন করে আপনার ইন্টিগ্রেশন পরীক্ষা করুন। সব অক্ষর সঠিকভাবে রেন্ডার নিশ্চিত করুন.
- 14.0: 🫠, 🫱🏼🫲🏿, 🫰🏽
- 13.1: 😶🌫️, 🧔🏻♀️, 🧑🏿❤️🧑🏾
- 13.0: 🥲, 🥷🏿, 🐻❄️
- 12.1: 🧑🏻🦰, 🧑🏿🦯, 👩🏻🤝👩🏼
- 12.0: 🦩, 🦻🏿, 👩🏼🤝👩🏻
ইমোজি2 পরিচালনার জন্য ঐচ্ছিক বৈশিষ্ট্য
আপনি আপনার অ্যাপে emoji2
লাইব্রেরি অন্তর্ভুক্ত করার পরে, আপনি এই বিভাগে বর্ণিত ঐচ্ছিক বৈশিষ্ট্যগুলি যোগ করতে পারেন।
একটি ভিন্ন ফন্ট বা ডাউনলোডযোগ্য ফন্ট প্রদানকারী ব্যবহার করতে ইমোজি2 কনফিগার করুন
একটি ভিন্ন ফন্ট বা ডাউনলোডযোগ্য ফন্ট প্রদানকারী ব্যবহার করার জন্য 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.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
ফন্টটি 10 MB এর বেশি, তাই আমরা দৃঢ়ভাবে সুপারিশ করছি যে আপনার অ্যাপটি সম্ভব হলে ডাউনলোডযোগ্য ফন্ট ব্যবহার করুন। 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
অন্তর্ভুক্ত করার জন্য পূর্ববর্তী পদক্ষেপগুলি অনুসরণ করে ইন্টিগ্রেশন পরীক্ষা করুন৷ পরীক্ষা স্ট্রিং সঠিকভাবে প্রদর্শন নিশ্চিত করুন.- 14.0: 🫠, 🫱🏼🫲🏿, 🫰🏽
- 13.1: 😶🌫️, 🧔🏻♀️, 🧑🏿❤️🧑🏾
- 13.0: 🥲, 🥷🏿, 🐻❄️
- 12.1: 🧑🏻🦰, 🧑🏿🦯, 👩🏻🤝👩🏼
- 12.0: 🦩, 🦻🏿, 👩🏼🤝👩🏻
স্বয়ংক্রিয় ইমোজিকম্প্যাট কনফিগারেশনের প্রভাব
সিস্টেমটি স্টার্টআপ লাইব্রেরি, EmojiCompatInitializer
এবং DefaultEmojiCompatConfig
ব্যবহার করে ডিফল্ট কনফিগারেশন প্রয়োগ করে।
আপনার অ্যাপে প্রথম অ্যাক্টিভিটি আবার শুরু হওয়ার পর, ইনিশিয়ালাইজার ইমোজি ফন্ট লোড করার সময়সূচী করে। এই সংক্ষিপ্ত বিলম্ব আপনার অ্যাপটিকে একটি ব্যাকগ্রাউন্ড থ্রেডে ফন্ট লোড হওয়ার কারণে কোনও সম্ভাব্য বিলম্ব ছাড়াই এর প্রাথমিক বিষয়বস্তু প্রদর্শন করতে দেয়।
DefaultEmojiCompatConfig
একটি সিস্টেম-ইনস্টল করা ডাউনলোডযোগ্য ফন্ট প্রদানকারীর সন্ধান করে যা EmojiCompat
ইন্টারফেস প্রয়োগ করে, যেমন Google Play পরিষেবা। Google Play পরিষেবাগুলি দ্বারা চালিত ডিভাইসগুলিতে, এটি Google Play পরিষেবাগুলি ব্যবহার করে ফন্ট লোড করে৷
ইনিশিয়ালাইজার ইমোজি ফন্ট লোড করার জন্য একটি ব্যাকগ্রাউন্ড থ্রেড তৈরি করে এবং ফন্ট ডাউনলোড টাইম আউট হওয়ার আগে 10 সেকেন্ড পর্যন্ত সময় নিতে পারে। ফন্টটি ডাউনলোড হওয়ার পরে, EmojiCompat
শুরু করতে একটি ব্যাকগ্রাউন্ড থ্রেডে প্রায় 150 মিলিসেকেন্ড সময় লাগে।
আপনি EmojiCompatInitializer
নিষ্ক্রিয় করলেও, EmojiCompat
এর আরম্ভকরণ স্থগিত করুন। আপনি যদি ম্যানুয়ালি EmojiCompat
কনফিগার করেন , তাহলে প্রথম স্ক্রিন লোডের সাথে পটভূমির বিরোধ এড়াতে আপনার অ্যাপের প্রথম স্ক্রীনটি প্রদর্শন করার পরে EmojiCompat.load()
এ কল করুন।
লোড করার পরে, ইমোজি মেটাডেটা ধরে রাখতে EmojiCompat
প্রায় 300 KB RAM ব্যবহার করে।