इमोजी के साथ काम करने की सुविधा

Compose को आज़माएं
Android के लिए, Jetpack Compose को यूज़र इंटरफ़ेस (यूआई) टूलकिट के तौर पर इस्तेमाल करने का सुझाव दिया जाता है. Compose में इमोजी इस्तेमाल करने का तरीका जानें.

EmojiCompat सपोर्ट लाइब्रेरी का मकसद, Android डिवाइसों को नए इमोजी के साथ अप-टू-डेट रखना है. इससे आपके ऐप्लिकेशन में, ☐ के तौर पर इमोजी वर्ण नहीं दिखते. इससे पता चलता है कि आपके डिवाइस में टेक्स्ट दिखाने के लिए फ़ॉन्ट नहीं है. EmojiCompat सपोर्ट लाइब्रेरी का इस्तेमाल करने से, आपके ऐप्लिकेशन के उपयोगकर्ताओं को नए इमोजी पाने के लिए, Android ओएस के अपडेट का इंतज़ार नहीं करना पड़ता.

इमोजी दिखाने वाले डिवाइस
पहली इमेज. इमोजी की तुलना

इसी विषय से जुड़े इन संसाधनों को देखें:

  • इमोजी कंपैटिबिलिटी का सैंपल ऐप्लिकेशन Java | Kotlin

EmojiCompat लाइब्रेरी कैसे काम करती है?

EmojiCompat सपोर्ट लाइब्रेरी, Android 4.4 (एपीआई लेवल 19) और इसके बाद के वर्शन पर काम करने वाले डिवाइसों पर, इमोजी की सुविधा को बैकवर्ड-कंपैटिबल तरीके से लागू करने के लिए क्लास उपलब्ध कराती है. EmojiCompat को बंडल किए गए या डाउनलोड किए जा सकने वाले फ़ॉन्ट के साथ कॉन्फ़िगर किया जा सकता है. कॉन्फ़िगरेशन के बारे में ज़्यादा जानने के लिए, यहां दिए गए सेक्शन देखें:

EmojiCompat किसी दिए गए CharSequence के लिए इमोजी की पहचान करता है. इसके बाद, ज़रूरत पड़ने पर उन्हें EmojiSpans से बदलता है. आखिर में, इमोजी ग्लिफ़ रेंडर करता है. दूसरी इमेज में, इस प्रोसेस को दिखाया गया है.

EmojiCompat प्रोसेस
दूसरी इमेज. EmojiCompat प्रोसेस

डाउनलोड किए जा सकने वाले फ़ॉन्ट का कॉन्फ़िगरेशन

डाउनलोड किए जा सकने वाले फ़ॉन्ट का कॉन्फ़िगरेशन, इमोजी फ़ॉन्ट डाउनलोड करने के लिए, डाउनलोड किए जा सकने वाले फ़ॉन्ट की सुविधा देने वाली लाइब्रेरी का इस्तेमाल करता है. यह ज़रूरी इमोजी मेटाडेटा को भी अपडेट करता है. EmojiCompat सपोर्ट लाइब्रेरी को यूनिकोड स्पेसिफ़िकेशन के नए वर्शन के साथ काम करने के लिए, इस मेटाडेटा की ज़रूरत होती है.

सपोर्ट लाइब्रेरी की डिपेंडेंसी जोड़ना

EmojiCompat सपोर्ट लाइब्रेरी का इस्तेमाल करने के लिए, आपको अपने ऐप्लिकेशन प्रोजेक्ट की क्लासपाथ डिपेंडेंसी में बदलाव करना होगा. यह बदलाव, आपको अपने डेवलपमेंट एनवायरमेंट में करना होगा.

अपने ऐप्लिकेशन प्रोजेक्ट में सहायता लाइब्रेरी जोड़ने के लिए:

  1. अपने ऐप्लिकेशन की build.gradle फ़ाइल खोलें.
  2. dependencies सेक्शन में, सपोर्ट लाइब्रेरी जोड़ें.

Groovy

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

Kotlin

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

डाउनलोड किए जा सकने वाले फ़ॉन्ट के कॉन्फ़िगरेशन को शुरू किया जा रहा है

मेटाडेटा और टाइपफ़ेस लोड करने के लिए, आपको EmojiCompat को शुरू करना होगा. शुरू होने में कुछ समय लग सकता है. इसलिए, शुरू होने की प्रोसेस बैकग्राउंड थ्रेड पर चलती है.

डाउनलोड किए जा सकने वाले फ़ॉन्ट कॉन्फ़िगरेशन के साथ EmojiCompat को शुरू करने के लिए, यह तरीका अपनाएं:

  1. FontRequest क्लास का एक इंस्टेंस बनाएं. साथ ही, फ़ॉन्ट उपलब्ध कराने वाली संस्था, फ़ॉन्ट उपलब्ध कराने वाली संस्था का पैकेज, फ़ॉन्ट क्वेरी, और सर्टिफ़िकेट के लिए हैश के सेट की सूची दें. FontRequest के बारे में ज़्यादा जानने के लिए, डाउनलोड किए जा सकने वाले फ़ॉन्ट के दस्तावेज़ में मौजूद, प्रोग्राम के हिसाब से डाउनलोड किए जा सकने वाले फ़ॉन्ट इस्तेमाल करना सेक्शन देखें.
  2. FontRequestEmojiCompatConfig का इंस्टेंस बनाएं और Context और FontRequest के इंस्टेंस दें.
  3. init() तरीके को कॉल करके EmojiCompat को शुरू करें और FontRequestEmojiCompatConfig का इंस्टेंस पास करें.
  4. Kotlin

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

    Java

    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. लेआउट एक्सएमएल में EmojiCompat विजेट का इस्तेमाल करें. अगर AppCompat का इस्तेमाल किया जा रहा है, तो AppCompat के साथ EmojiCompat विजेट का इस्तेमाल करना सेक्शन देखें.
  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 पर जाएं.

लाइब्रेरी कॉम्पोनेंट

EmojiCompat प्रोसेस में लाइब्रेरी कॉम्पोनेंट
तीसरी इमेज. EmojiCompat प्रोसेस में लाइब्रेरी कॉम्पोनेंट
विजेट: EmojiEditText, EmojiTextView, EmojiButton
विजेट लागू करने के डिफ़ॉल्ट तरीके, जिनका इस्तेमाल EmojiCompat के साथ TextView, EditText, और Button में किया जा सकता है.
EmojiCompat
सहायता लाइब्रेरी के लिए मुख्य सार्वजनिक प्लैटफ़ॉर्म. यह सभी बाहरी कॉल करता है और सिस्टम के अन्य हिस्सों के साथ मिलकर काम करता है.
EmojiCompat.Config
यह सिंगलटन इंस्टेंस को कॉन्फ़िगर करता है.
EmojiSpan
यह ReplacementSpan सबक्लास है, जो वर्ण (सीक्वेंस) को बदलता है और ग्लिफ़ को रेंडर करता है.
EmojiCompat फ़ॉन्ट
EmojiCompat, इमोजी दिखाने के लिए फ़ॉन्ट का इस्तेमाल करता है. यह फ़ॉन्ट, Android Emoji फ़ॉन्ट का बदला हुआ वर्शन है. फ़ॉन्ट में इस तरह बदलाव किया गया है:
  • इमोजी को रेंडर करने के लिए, पुराने वर्शन के साथ काम करने की सुविधा देने के लिए, सभी इमोजी वर्णों को यूनिकोड के सप्लीमेंटल प्राइवेट यूज़ एरिया-ए में एक ही यूनिकोड कोड पॉइंट के साथ दिखाया जाता है. यह 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 के शुरू होने की स्थिति के बारे में बताता है.

Kotlin

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

Java

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 विजेट के साथ EmojiCompat का इस्तेमाल करना

अगर AppCompat widgets का इस्तेमाल किया जा रहा है, तो EmojiCompat के ऐसे विजेट इस्तेमाल किए जा सकते हैं जो AppCompat widgets से एक्सटेंड होते हैं.

  1. डिपेंडेंसी सेक्शन में, सपोर्ट लाइब्रेरी जोड़ें.

    Groovy

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

    Kotlin

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

    Groovy

          dependencies {
              implementation "androidx.emoji:emoji-appcompat:$version"
          }
          
  2. लेआउट एक्सएमएल में 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 सेक्शन में, सपोर्ट लाइब्रेरी जोड़ें.

Groovy

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

Kotlin

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

EmojiCompat को कॉन्फ़िगर करने के लिए, बंडल किए गए फ़ॉन्ट का इस्तेमाल करना

EmojiCompat को कॉन्फ़िगर करने के लिए, बंडल किए गए फ़ॉन्ट इस्तेमाल करने के लिए, यह तरीका अपनाएं:

  1. EmojiCompat का इंस्टेंस बनाने और Context का इंस्टेंस देने के लिए, BundledEmojiCompatConfig का इस्तेमाल करें.
  2. EmojiCompat को शुरू करने के लिए, init() वाले तरीके को कॉल करें और BundledEmojiCompatConfig का इंस्टेंस पास करें.

Kotlin

class MyApplication : Application() {

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

Java

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

विजेट के बिना EmojiCompat का इस्तेमाल करना

EmojiCompat सही इमेज दिखाने के लिए, EmojiSpan का इस्तेमाल करता है. इसलिए, इसे दिए गए किसी भी CharSequence को Spanned इंस्टेंस में बदलना होगा. इसके लिए, EmojiSpans का इस्तेमाल करना होगा. EmojiCompat क्लास, CharSequences को EmojiSpans के साथ Spanned इंस्टेंस में बदलने का तरीका उपलब्ध कराती है. इस तरीके का इस्तेमाल करके, रॉ स्ट्रिंग के बजाय प्रोसेस किए गए इंस्टेंस को प्रोसेस और कैश किया जा सकता है. इससे आपके ऐप्लिकेशन की परफ़ॉर्मेंस बेहतर होती है.

Kotlin

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

Java

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

IME के लिए EmojiCompat का इस्तेमाल करना

EmojiCompat सपोर्ट लाइब्रेरी का इस्तेमाल करके, कीबोर्ड उन इमोजी को रेंडर कर सकते हैं जिन्हें ऐप्लिकेशन इस्तेमाल कर रहा है. आईएमई, hasEmojiGlyph() तरीके का इस्तेमाल करके यह देख सकते हैं कि EmojiCompat किसी इमोजी को रेंडर कर सकता है या नहीं. यह तरीका, इमोजी का CharSequence लेता है और true दिखाता है. ऐसा तब होता है, जब EmojiCompat इमोजी का पता लगा सकता है और उसे रेंडर कर सकता है.

कीबोर्ड, EmojiCompat सपोर्ट लाइब्रेरी के उस वर्शन की भी जांच कर सकता है जिसे ऐप्लिकेशन इस्तेमाल करता है. इससे यह तय किया जा सकता है कि पैलेट में कौनसे इमोजी रेंडर किए जाएं. अगर कीबोर्ड का वर्शन उपलब्ध है, तो उसकी जांच करने के लिए, कीबोर्ड को यह देखना होगा कि EditorInfo.extras बंडल में ये कुंजियां मौजूद हैं या नहीं:

  • EDITOR_INFO_METAVERSION_KEY
  • अगर बंडल में कुंजी मौजूद है, तो वैल्यू उस इमोजी मेटाडेटा के वर्शन को दिखाती है जिसका इस्तेमाल ऐप्लिकेशन करता है. अगर यह कुंजी मौजूद नहीं है, तो इसका मतलब है कि ऐप्लिकेशन EmojiCompat का इस्तेमाल नहीं कर रहा है.

  • EDITOR_INFO_REPLACE_ALL_KEY
  • अगर यह कुंजी मौजूद है और इसे true पर सेट किया गया है, तो इससे पता चलता है कि ऐप्लिकेशन ने SetReplaceAll() मेथड को कॉल किया है. EmojiCompat कॉन्फ़िगरेशन के बारे में ज़्यादा जानकारी के लिए, कॉन्फ़िगरेशन के विकल्प सेक्शन देखें.

EditorInfo.extras बंडल में कुंजियां मिलने के बाद, कीबोर्ड hasEmojiGlyph() तरीके का इस्तेमाल कर सकता है. इसमें metadataVersion, EDITOR_INFO_METAVERSION_KEY की वैल्यू होती है. इससे यह पता लगाया जा सकता है कि ऐप्लिकेशन किसी खास इमोजी को रेंडर कर सकता है या नहीं.

कस्टम विजेट के साथ EmojiCompat का इस्तेमाल करना

अपने ऐप्लिकेशन में CharSequence को पहले से प्रोसेस करने के लिए, process() तरीके का इस्तेमाल किया जा सकता है. साथ ही, इसे ऐसे किसी भी विजेट में जोड़ा जा सकता है जो Spanned इंस्टेंस रेंडर कर सकता है. उदाहरण के लिए, TextView. इसके अलावा, EmojiCompat आपको विजेट हेल्पर क्लास उपलब्ध कराता है. इनकी मदद से, कम समय में अपने कस्टम विजेट में इमोजी इस्तेमाल करने की सुविधा जोड़ी जा सकती है.

Sample TextView

Kotlin

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

Java

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() {
       ...
   }
}
EditText का सैंपल

Kotlin

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

Java

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 को शुरू होने में करीब 150 मिलीसेकंड लगते हैं.

  • EmojiCompat support library कितनी मेमोरी का इस्तेमाल करती है?
  • फ़िलहाल, इमोजी ढूंढने के लिए डेटा स्ट्रक्चर, ऐप्लिकेशन की मेमोरी में लोड होता है. यह करीब 200 केबी का होता है.

  • क्या कस्टम TextView के लिए EmojiCompat का इस्तेमाल किया जा सकता है?
  • हां. EmojiCompat, कस्टम विजेट के लिए हेल्पर क्लास उपलब्ध कराता है. किसी स्ट्रिंग को पहले से प्रोसेस करके, उसे Spanned में बदला जा सकता है. विजेट हेल्पर क्लास के बारे में ज़्यादा जानने के लिए, कस्टम विजेट के साथ EmojiCompat का इस्तेमाल करना सेक्शन देखें.

  • अगर Android 4.4 (एपीआई लेवल 19) या इससे पहले के वर्शन वाले डिवाइसों पर, लेआउट XML में विजेट जोड़े जाते हैं, तो क्या होगा?
  • EmojiCompat सपोर्ट लाइब्रेरी या इसके विजेट को उन ऐप्लिकेशन में शामिल किया जा सकता है जो Android 4.4 (एपीआई लेवल 19) या इससे पहले के वर्शन पर काम करते हैं. हालांकि, अगर कोई डिवाइस एपीआई लेवल 19 से पहले के Android वर्शन पर काम करता है, EmojiCompat और उसके विजेट "कोई कार्रवाई नहीं" स्थिति में हैं. इसका मतलब है कि EmojiTextView ठीक उसी तरह काम करता है जैसे कोई सामान्य TextView. EmojiCompat इंस्टेंस; init() तरीके को कॉल करने पर, यह तुरंत LOAD_STATE_SUCCEEDED स्थिति में आ जाता है.

अन्य संसाधन

EmojiCompat लाइब्रेरी का इस्तेमाल करने के बारे में ज़्यादा जानकारी के लिए, EmojiCompat देखें.