ইমোজি সামঞ্জস্য

রচনা পদ্ধতিটি চেষ্টা করে দেখুন
জেটপ্যাক কম্পোজ হল অ্যান্ড্রয়েডের জন্য প্রস্তাবিত UI টুলকিট। কম্পোজে ইমোজি কীভাবে সমর্থন করবেন তা জানুন।

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

ডিভাইসগুলি ইমোজি দেখাচ্ছে
চিত্র ১. ইমোজি তুলনা

নিম্নলিখিত সম্পর্কিত সম্পদগুলি দেখুন:

ইমোজিকম্প্যাট কীভাবে কাজ করে?

EmojiCompat সাপোর্ট লাইব্রেরি অ্যান্ড্রয়েড ৪.৪ (এপিআই লেভেল ১৯) এবং তার উচ্চতর ভার্সন চালিত ডিভাইসগুলিতে ব্যাকওয়ার্ড-সামঞ্জস্যপূর্ণ ইমোজি সাপোর্ট বাস্তবায়নের জন্য ক্লাস প্রদান করে। আপনি EmojiCompat বান্ডেলড বা ডাউনলোডযোগ্য ফন্ট দিয়ে কনফিগার করতে পারেন। কনফিগারেশন সম্পর্কে আরও তথ্যের জন্য, নিম্নলিখিত বিভাগগুলি দেখুন:

EmojiCompat একটি নির্দিষ্ট CharSequence এর জন্য ইমোজি সনাক্ত করে, প্রয়োজনে EmojiSpans দিয়ে প্রতিস্থাপন করে, এবং অবশেষে ইমোজি গ্লিফগুলি রেন্ডার করে। চিত্র 2 প্রক্রিয়াটি দেখায়।

ইমোজিকম্প্যাট প্রক্রিয়া
চিত্র ২. ইমোজিকম্প্যাট প্রক্রিয়া

ডাউনলোডযোগ্য ফন্ট কনফিগারেশন

ডাউনলোডযোগ্য ফন্ট কনফিগারেশনটি ইমোজি ফন্ট ডাউনলোড করার জন্য ডাউনলোডযোগ্য ফন্ট সাপোর্ট লাইব্রেরি বৈশিষ্ট্য ব্যবহার করে। এটি ইউনিকোড স্পেসিফিকেশনের সর্বশেষ সংস্করণগুলির সাথে তাল মিলিয়ে চলার জন্য EmojiCompat সাপোর্ট লাইব্রেরির প্রয়োজনীয় ইমোজি মেটাডেটাও আপডেট করে।

সাপোর্ট লাইব্রেরি নির্ভরতা যোগ করা হচ্ছে

EmojiCompat সাপোর্ট লাইব্রেরি ব্যবহার করার জন্য, আপনাকে আপনার ডেভেলপমেন্ট পরিবেশের মধ্যে আপনার অ্যাপ প্রজেক্টের ক্লাসপাথ নির্ভরতা পরিবর্তন করতে হবে।

আপনার অ্যাপ্লিকেশন প্রকল্পে একটি সহায়তা লাইব্রেরি যোগ করতে:

  1. আপনার অ্যাপ্লিকেশনের build.gradle ফাইলটি খুলুন।
  2. dependencies বিভাগে সাপোর্ট লাইব্রেরি যোগ করুন।

খাঁজকাটা

dependencies {
    ...
    implementation "androidx.emoji:emoji:28.0.0"
}

কোটলিন

dependencies {
    ...
    implementation("androidx.emoji:emoji:28.0.0")
}

ডাউনলোডযোগ্য ফন্ট কনফিগারেশন শুরু করা হচ্ছে

মেটাডেটা এবং টাইপফেস লোড করার জন্য আপনাকে EmojiCompat ইনিশিয়ালাইজ করতে হবে। যেহেতু ইনিশিয়ালাইজেশনে কিছুটা সময় লাগতে পারে, তাই ইনিশিয়ালাইজেশন প্রক্রিয়াটি একটি ব্যাকগ্রাউন্ড থ্রেডে চলে।

ডাউনলোডযোগ্য ফন্ট কনফিগারেশনের সাথে EmojiCompat আরম্ভ করতে, নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:

  1. FontRequest ক্লাসের একটি উদাহরণ তৈরি করুন এবং ফন্ট প্রোভাইডার অথরিটি, ফন্ট প্রোভাইডার প্যাকেজ, ফন্ট কোয়েরি এবং সার্টিফিকেটের জন্য হ্যাশের সেটের একটি তালিকা প্রদান করুন। FontRequest সম্পর্কে আরও তথ্যের জন্য, ডাউনলোডযোগ্য ফন্ট ডকুমেন্টেশনের "ডাউনলোডেবল ফন্ট প্রোগ্রাম্যাটিকভাবে ব্যবহার করা" বিভাগটি দেখুন।
  2. FontRequestEmojiCompatConfig এর একটি উদাহরণ তৈরি করুন এবং Context এবং FontRequest এর উদাহরণ প্রদান করুন।
  3. init() পদ্ধতিটি কল করে EmojiCompat আরম্ভ করুন এবং FontRequestEmojiCompatConfig এর উদাহরণটি পাস করুন।
  4. কোটলিন

    class MyApplication : Application() {
    
        override fun onCreate() {
            super.onCreate()
            val fontRequest = FontRequest(
                    "com.example.fontprovider",
                    "com.example",
                    "emoji compat Font Query",
                    CERTIFICATES
            )
            val config = FontRequestEmojiCompatConfig(this, fontRequest)
            EmojiCompat.init(config)
        }
    }

    জাভা

    public class MyApplication extends Application {
      @Override
       public void onCreate() {
         super.onCreate();
         FontRequest fontRequest = new FontRequest(
           "com.example.fontprovider",
           "com.example",
           "emoji compat Font Query",
           CERTIFICATES);
         EmojiCompat.Config config = new FontRequestEmojiCompatConfig(this, fontRequest);
         EmojiCompat.init(config);
       }
    }
  5. XML লেআউটে EmojiCompat উইজেট ব্যবহার করুন। যদি আপনি AppCompat ব্যবহার করেন, তাহলে "Using EmojiCompat widgets with AppCompat" বিভাগটি দেখুন।
  6. <android.support.text.emoji.widget.EmojiTextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"/>
    
    <android.support.text.emoji.widget.EmojiEditText
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"/>
    
    <android.support.text.emoji.widget.EmojiButton
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"/>

ডাউনলোডযোগ্য ফন্ট কনফিগারেশনের সাথে EmojiCompat কীভাবে কনফিগার করবেন সে সম্পর্কে আরও তথ্যের জন্য, Emoji Compatibility নমুনা অ্যাপ Java | Kotlin এ যান।

লাইব্রেরির উপাদান

ইমোজিকম্প্যাট প্রক্রিয়ায় লাইব্রেরির উপাদানগুলি
চিত্র ৩. ইমোজিকম্প্যাট প্রক্রিয়ায় লাইব্রেরি উপাদানগুলি
উইজেট: EmojiEditText , EmojiTextView , EmojiButton
TextView , EditText এবং Button সহ EmojiCompat ব্যবহারের জন্য ডিফল্ট উইজেট বাস্তবায়ন।
EmojiCompat
সাপোর্ট লাইব্রেরির জন্য প্রধান পাবলিক সারফেস। এটি সমস্ত বাহ্যিক কল সম্পাদন করে এবং সিস্টেমের অন্যান্য অংশের সাথে সমন্বয় সাধন করে।
EmojiCompat.Config
তৈরি করার জন্য সিঙ্গেলটন ইনস্ট্যান্স কনফিগার করে।
EmojiSpan
একটি ReplacementSpan সাবক্লাস যা অক্ষর (ক্রম) প্রতিস্থাপন করে এবং গ্লিফ রেন্ডার করে।
EmojiCompat ফন্ট
EmojiCompat ইমোজি প্রদর্শনের জন্য একটি ফন্ট ব্যবহার করে। এই ফন্টটি অ্যান্ড্রয়েড ইমোজি ফন্টের একটি পরিবর্তিত সংস্করণ। ফন্টটি নিম্নরূপ পরিবর্তিত হয়েছে:
  • ইমোজি রেন্ডার করার জন্য পশ্চাদমুখী সামঞ্জস্য প্রদানের জন্য, সমস্ত ইমোজি অক্ষরগুলিকে ইউনিকোডের সাপ্লিমেন্টাল প্রাইভেট ইউজ এরিয়া-এ-তে U+F0001 দিয়ে শুরু করে একটি একক ইউনিকোড কোড পয়েন্ট দিয়ে উপস্থাপন করা হয়।
  • অতিরিক্ত ইমোজি মেটাডেটা ফন্টে বাইনারি ফর্ম্যাটে ঢোকানো হয় এবং রানটাইমে EmojiCompat দ্বারা পার্স করা হয়। ডেটা ফন্টের meta টেবিলে, প্রাইভেট ট্যাগ Emji সহ এমবেড করা হয়।

কনফিগারেশন বিকল্পগুলি

EmojiCompat আচরণ পরিবর্তন করতে আপনি EmojiCompat ইনস্ট্যান্স ব্যবহার করতে পারেন। কনফিগারেশন সেট করতে আপনি বেস ক্লাস থেকে নিম্নলিখিত পদ্ধতিগুলি ব্যবহার করতে পারেন:

  • setReplaceAll() : EmojiCompat যে সমস্ত ইমোজি খুঁজে পায় তা EmojiSpans দিয়ে প্রতিস্থাপন করবে কিনা তা নির্ধারণ করে। ডিফল্টরূপে, EmojiCompat সিস্টেমটি কোনও ইমোজি রেন্ডার করতে পারে কিনা তা বোঝার জন্য যথাসাধ্য চেষ্টা করে এবং সেই ইমোজিগুলি প্রতিস্থাপন করে না। true তে সেট করা হলে, EmojiCompat যে সমস্ত ইমোজি খুঁজে পায় EmojiSpans দিয়ে প্রতিস্থাপন করে।
  • setEmojiSpanIndicatorEnabled() : EmojiCompat একটি ইমোজিকে EmojiSpan দিয়ে প্রতিস্থাপন করেছে কিনা তা নির্দেশ করে। true তে সেট করা হলে, EmojiCompat EmojiSpan এর জন্য একটি ব্যাকগ্রাউন্ড আঁকে। এই পদ্ধতিটি মূলত ডিবাগিংয়ের উদ্দেশ্যে ব্যবহৃত হয়।
  • setEmojiSpanIndicatorColor() : একটি EmojiSpan নির্দেশ করার জন্য রঙ সেট করে। ডিফল্ট মান হল GREEN
  • registerInitCallback : EmojiCompat আরম্ভের অবস্থা সম্পর্কে অ্যাপটিকে অবহিত করে।

কোটলিন

val config = FontRequestEmojiCompatConfig(...)
        .setReplaceAll(true)
        .setEmojiSpanIndicatorEnabled(true)
        .setEmojiSpanIndicatorColor(Color.GREEN)
        .registerInitCallback(object: EmojiCompat.InitCallback() {
            ...
        })

জাভা

EmojiCompat.Config config = new FontRequestEmojiCompatConfig(...)
       .setReplaceAll(true)
       .setEmojiSpanIndicatorEnabled(true)
       .setEmojiSpanIndicatorColor(Color.GREEN)
       .registerInitCallback(new InitCallback() {...})

ইনিশিয়ালাইজেশন লিসেনার্স যোগ করা হচ্ছে

EmojiCompat এবং EmojiCompat ক্লাসগুলি একটি ইনিশিয়ালাইজেশন কলব্যাক নিবন্ধনের জন্য registerInitCallback() এবং unregisterInitCallback() পদ্ধতি প্রদান করে। এই পদ্ধতিগুলি ব্যবহার করার জন্য, EmojiCompat.InitCallback ক্লাসের একটি ইনস্ট্যান্স তৈরি করুন। এই পদ্ধতিগুলি কল করুন এবং EmojiCompat.InitCallback ক্লাসের ইনস্ট্যান্স পাস করুন। EmojiCompat সাপোর্ট লাইব্রেরির ইনিশিয়ালাইজেশন সফল হলে, EmojiCompat ক্লাস onInitialized() পদ্ধতিটি কল করে। যদি লাইব্রেরি ইনিশিয়ালাইজ করতে ব্যর্থ হয়, তাহলে EmojiCompat ক্লাস onFailed() পদ্ধতিটি কল করে।

যেকোনো সময়ে ইনিশিয়ালাইজেশন অবস্থা পরীক্ষা করতে, getLoadState() পদ্ধতিটি কল করুন। এটি নিম্নলিখিত মানগুলির মধ্যে একটি প্রদান করে: LOAD_STATE_LOADING , LOAD_STATE_SUCCEEDED , অথবা LOAD_STATE_FAILED .

অ্যাপকম্প্যাট উইজেটগুলির সাথে ইমোজিকম্প্যাট ব্যবহার করা

আপনি যদি AppCompat widgets ব্যবহার করেন, তাহলে আপনি EmojiCompat উইজেট ব্যবহার করতে পারেন যা AppCompat widgets থেকে প্রসারিত।

  1. নির্ভরতা বিভাগে সাপোর্ট লাইব্রেরি যোগ করুন।

    খাঁজকাটা

    dependencies {
        ...
        implementation "androidx.emoji:emoji-bundled:$version"
    }

    কোটলিন

          dependencies {
              implementation("androidx.emoji:emoji-appcompat:$version")
          }
          

    খাঁজকাটা

          dependencies {
              implementation "androidx.emoji:emoji-appcompat:$version"
          }
          
  2. XML লেআউটে EmojiCompat AppCompat Widget উইজেট ব্যবহার করুন।
  3. <android.support.text.emoji.widget.EmojiAppCompatTextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"/>
    
    <android.support.text.emoji.widget.EmojiAppCompatEditText
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"/>
    
    <android.support.text.emoji.widget.EmojiAppCompatButton
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"/>

বান্ডেলড ফন্ট কনফিগারেশন

EmojiCompat সাপোর্ট লাইব্রেরিটি একটি বান্ডেলড ফন্ট ভার্সনেও পাওয়া যায়। এই প্যাকেজটিতে এমবেডেড মেটাডেটা সহ ফন্ট অন্তর্ভুক্ত রয়েছে। প্যাকেজটিতে একটি BundledEmojiCompatConfig রয়েছে যা মেটাডেটা এবং ফন্ট লোড করতে AssetManager ব্যবহার করে।

দ্রষ্টব্য: ফন্টের আকার একাধিক মেগাবাইটে।

সাপোর্ট লাইব্রেরি নির্ভরতা যোগ করা হচ্ছে

বান্ডেলড ফন্ট কনফিগারেশন সহ EmojiCompat সাপোর্ট লাইব্রেরি ব্যবহার করতে, আপনাকে আপনার ডেভেলপমেন্ট পরিবেশের মধ্যে আপনার অ্যাপ প্রোজেক্টের ক্লাসপাথ নির্ভরতা পরিবর্তন করতে হবে

আপনার অ্যাপ্লিকেশন প্রকল্পে একটি সহায়তা লাইব্রেরি যোগ করতে:

  1. আপনার অ্যাপ্লিকেশনের build.gradle ফাইলটি খুলুন।
  2. dependencies বিভাগে সাপোর্ট লাইব্রেরি যোগ করুন।

খাঁজকাটা

dependencies {
    ...
    implementation "androidx.emoji:emoji:28.0.0"
}

কোটলিন

dependencies {
    ...
    implementation("androidx.emoji:emoji:28.0.0")
}

EmojiCompat কনফিগার করার জন্য বান্ডিল ফন্ট ব্যবহার করা

EmojiCompat কনফিগার করার জন্য বান্ডিল করা ফন্ট ব্যবহার করতে, নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:

  1. EmojiCompat এর একটি ইনস্ট্যান্স তৈরি করতে এবং Context এর একটি ইনস্ট্যান্স প্রদান করতে BundledEmojiCompatConfig ব্যবহার করুন।
  2. EmojiCompat আরম্ভ করতে init() পদ্ধতিটি কল করুন এবং BundledEmojiCompatConfig এর উদাহরণটি পাস করুন।

কোটলিন

class MyApplication : Application() {

    override fun onCreate() {
        super.onCreate()
        val config = BundledEmojiCompatConfig(this)
        EmojiCompat.init(config)
    }
}

জাভা

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        EmojiCompat.Config config = new BundledEmojiCompatConfig(this);
        EmojiCompat.init(config);
        ...
    }
}

উইজেট ছাড়াই ইমোজিকম্প্যাট ব্যবহার করা

EmojiCompat সঠিক ছবি রেন্ডার করার জন্য EmojiSpan ব্যবহার করে। অতএব, EmojiSpans ব্যবহার করে যেকোনো CharSequence Spanned ইনস্ট্যান্সে রূপান্তর করতে হয়। EmojiCompat ক্লাস EmojiSpans ব্যবহার করে CharSequences কে Spanned ইনস্ট্যান্সে রূপান্তর করার একটি পদ্ধতি প্রদান করে। এই পদ্ধতি ব্যবহার করে, আপনি raw স্ট্রিং এর পরিবর্তে প্রক্রিয়াকৃত ইনস্ট্যান্সগুলি প্রক্রিয়া এবং ক্যাশে করতে পারেন, যা আপনার অ্যাপ্লিকেশনের কর্মক্ষমতা উন্নত করে।

কোটলিন

val processed = EmojiCompat.get().process("neutral face \uD83D\uDE10")

জাভা

CharSequence processed = EmojiCompat.get().process("neutral face \uD83D\uDE10");

IME-এর জন্য EmojiCompat ব্যবহার করা

EmojiCompat সাপোর্ট লাইব্রেরি ব্যবহার করে, কীবোর্ডগুলি যে অ্যাপ্লিকেশনের সাথে ইন্টারঅ্যাক্ট করছে তার দ্বারা সমর্থিত ইমোজি রেন্ডার করতে পারে। IME গুলি hasEmojiGlyph() পদ্ধতি ব্যবহার করে EmojiCompat ইমোজি রেন্ডার করতে সক্ষম কিনা তা পরীক্ষা করতে পারে। এই পদ্ধতিটি একটি ইমোজির একটি CharSequence নেয় এবং EmojiCompat ইমোজি সনাক্ত এবং রেন্ডার করতে পারলে true ফেরত দেয়।

প্যালেটে কোন ইমোজি রেন্ডার করা হবে তা নির্ধারণ করার জন্য কীবোর্ডটি অ্যাপটি সমর্থিত EmojiCompat সাপোর্ট লাইব্রেরির সংস্করণটিও পরীক্ষা করতে পারে। সংস্করণটি পরীক্ষা করার জন্য, যদি উপলব্ধ থাকে, তাহলে কীবোর্ডটিকে EditorInfo.extras বান্ডেলে নিম্নলিখিত কীগুলি বিদ্যমান কিনা তা পরীক্ষা করতে হবে:

  • EDITOR_INFO_METAVERSION_KEY
  • যদি বান্ডেলে কীটি বিদ্যমান থাকে, তাহলে মানটি অ্যাপটি যে ইমোজি মেটাডেটা ব্যবহার করে তার সংস্করণটি উপস্থাপন করে। যদি এই কীটি বিদ্যমান না থাকে, তাহলে অ্যাপটি EmojiCompat ব্যবহার করছে না।

  • EDITOR_INFO_REPLACE_ALL_KEY
  • যদি কীটি বিদ্যমান থাকে এবং true তে সেট করা থাকে, তাহলে এর অর্থ হল অ্যাপটি SetReplaceAll() পদ্ধতিতে কল করেছে। EmojiCompat কনফিগারেশন সম্পর্কে আরও তথ্যের জন্য, কনফিগারেশন বিকল্প বিভাগটি দেখুন।

EditorInfo.extras বান্ডেলে কীগুলি পাওয়ার পর, কীবোর্ডটি hasEmojiGlyph() পদ্ধতি ব্যবহার করতে পারে, যেখানে metadataVersion হল EDITOR_INFO_METAVERSION_KEY এর মান, অ্যাপটি একটি নির্দিষ্ট ইমোজি রেন্ডার করতে পারে কিনা তা পরীক্ষা করতে।

কাস্টম উইজেট সহ ইমোজিকম্প্যাট ব্যবহার করা

আপনার অ্যাপে CharSequence প্রি-প্রসেস করার জন্য আপনি সর্বদা process() পদ্ধতি ব্যবহার করতে পারেন এবং Spanned ইনস্ট্যান্স রেন্ডার করতে পারে এমন যেকোনো উইজেটে এটি যোগ করতে পারেন; উদাহরণস্বরূপ, TextView । এছাড়াও, EmojiCompat নিম্নলিখিত উইজেট সহায়ক ক্লাসগুলি প্রদান করে যা আপনাকে ন্যূনতম প্রচেষ্টায় ইমোজি সমর্থন দিয়ে আপনার কাস্টম উইজেটগুলিকে সমৃদ্ধ করতে দেয়।

নমুনা টেক্সটভিউ

কোটলিন

class MyTextView(context: Context) : AppCompatTextView(context) {

    private val emojiTextViewHelper: EmojiTextViewHelper by lazy(LazyThreadSafetyMode.NONE) {
        EmojiTextViewHelper(this).apply {
            updateTransformationMethod()
        }
    }

    override fun setFilters(filters: Array<InputFilter>) {
        super.setFilters(emojiTextViewHelper.getFilters(filters))
    }

    override fun setAllCaps(allCaps: Boolean) {
        super.setAllCaps(allCaps)
        emojiTextViewHelper.setAllCaps(allCaps)
    }
}

জাভা

public class MyTextView extends AppCompatTextView {
   ...
   public MyTextView(Context context) {
       super(context);
       init();
   }
   ...
   private void init() {
       getEmojiTextViewHelper().updateTransformationMethod();
   }

   @Override
   public void setFilters(InputFilter[] filters) {
       super.setFilters(getEmojiTextViewHelper().getFilters(filters));
   }

   @Override
   public void setAllCaps(boolean allCaps) {
       super.setAllCaps(allCaps);
       getEmojiTextViewHelper().setAllCaps(allCaps);
   }

   private EmojiTextViewHelper getEmojiTextViewHelper() {
       ...
   }
}
নমুনা সম্পাদনা পাঠ্য

কোটলিন

class MyEditText(context: Context) : AppCompatEditText(context) {

    private val emojiEditTextHelper: EmojiEditTextHelper by lazy(LazyThreadSafetyMode.NONE) {
        EmojiEditTextHelper(this).also {
            super.setKeyListener(it.getKeyListener(keyListener))
        }
    }

    override fun setKeyListener(input: KeyListener?) {
        input?.also {
            super.setKeyListener(emojiEditTextHelper.getKeyListener(it))
        }
    }

    override fun onCreateInputConnection(outAttrs: EditorInfo): InputConnection {
        val inputConnection: InputConnection = super.onCreateInputConnection(outAttrs)
        return emojiEditTextHelper.onCreateInputConnection(
                inputConnection,
                outAttrs
        ) as InputConnection
    }
}

জাভা

public class MyEditText extends AppCompatEditText {
   ...
   public MyEditText(Context context) {
       super(context);
       init();
   }
   ...
   private void init() {
       super.setKeyListener(getEmojiEditTextHelper().getKeyListener(getKeyListener()));
   }

   @Override
   public void setKeyListener(android.text.method.KeyListener keyListener) {
       super.setKeyListener(getEmojiEditTextHelper().getKeyListener(keyListener));
   }

   @Override
   public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
       InputConnection inputConnection = super.onCreateInputConnection(outAttrs);
       return getEmojiEditTextHelper().onCreateInputConnection(inputConnection, outAttrs);
   }

   private EmojiEditTextHelper getEmojiEditTextHelper() {
       ...
   }
}

সচরাচর জিজ্ঞাস্য

  • আমি কিভাবে ফন্ট ডাউনলোড শুরু করব?
  • ডিভাইসে ইমোজি ফন্ট না থাকলে, প্রথম অনুরোধেই ডাউনলোড করা হয়। ডাউনলোডের সময়সূচী অ্যাপের কাছে স্বচ্ছ।

  • শুরু করতে কত সময় লাগে?
  • ফন্টটি ডাউনলোড হওয়ার পর, EmojiCompat চালু করতে প্রায় ১৫০ মিলিসেকেন্ড সময় লাগে।

  • ইমোজিকম্প্যাট সাপোর্ট লাইব্রেরি কত মেমোরি ব্যবহার করে?
  • বর্তমানে, ইমোজি খুঁজে বের করার জন্য ডেটা স্ট্রাকচারটি অ্যাপের মেমরিতে লোড করা আছে এবং প্রায় 200KB ব্যবহার করে।

  • আমি কি কাস্টম টেক্সটভিউয়ের জন্য ইমোজিকম্প্যাট ব্যবহার করতে পারি?
  • হ্যাঁ। EmojiCompat কাস্টম উইজেটের জন্য সহায়ক ক্লাস প্রদান করে। একটি প্রদত্ত স্ট্রিং প্রিপ্রসেস করে Spanned এ রূপান্তর করাও সম্ভব। উইজেট সহায়ক ক্লাস সম্পর্কে আরও তথ্যের জন্য, কাস্টম উইজেট সহ EmojiCompat ব্যবহার বিভাগটি দেখুন।

  • অ্যান্ড্রয়েড ৪.৪ (এপিআই লেভেল ১৯) বা তার নিচের ভার্সনে চালিত ডিভাইসগুলিতে লেআউট এক্সএমএল-এ উইজেট যোগ করলে কী হবে?
  • আপনি আপনার অ্যাপ্লিকেশনগুলিতে EmojiCompat সাপোর্ট লাইব্রেরি বা এর উইজেটগুলি অন্তর্ভুক্ত করতে পারেন যা Android 4.4 (API লেভেল 19) বা তার নিচের ভার্সনে চলমান ডিভাইসগুলিকে সমর্থন করে। তবে, যদি কোনও ডিভাইস API লেভেল 19 এর আগের অ্যান্ড্রয়েড ভার্সনে চলে, তাহলে EmojiCompat এবং এর উইজেটগুলি "কোনও অপারেশন নয়" অবস্থায় থাকে। এর অর্থ হল EmojiTextView ঠিক একটি নিয়মিত TextView মতো আচরণ করে। EmojiCompat ইনস্ট্যান্স; আপনি init() পদ্ধতিটি কল করলে এটি অবিলম্বে LOAD_STATE_SUCCEEDED অবস্থায় চলে যায়।

অতিরিক্ত সম্পদ

EmojiCompat লাইব্রেরি ব্যবহার সম্পর্কে আরও তথ্যের জন্য, EmojiCompat দেখুন।