इमोजी के स्टैंडर्ड सेट को हर साल यूनिकोड अपडेट करता है. ऐसा इसलिए, क्योंकि सभी तरह के ऐप्लिकेशन के लिए इमोजी का इस्तेमाल तेज़ी से बढ़ रहा है.
अगर आपका ऐप्लिकेशन इंटरनेट कॉन्टेंट दिखाता है या टेक्स्ट इनपुट करने की सुविधा देता है, तो हमारा सुझाव है कि आप इमोजी के नए फ़ॉन्ट इस्तेमाल करें. ऐसा न करने पर, बाद में इमोजी को तोफ़ू (☐) कहे जाने वाले छोटे स्क्वेयर बॉक्स के तौर पर दिखाया जा सकता है. इसके अलावा, इमोजी के क्रम को गलत तरीके से रेंडर किया जा सकता है.
Android के वर्शन 11 (एपीआई लेवल 30) और इससे पहले के वर्शन पर, इमोजी फ़ॉन्ट को अपडेट नहीं किया जा सकता. इसलिए, इन वर्शन पर इमोजी दिखाने वाले ऐप्लिकेशन को मैन्युअल तरीके से अपडेट करना होगा.
यहां मॉडर्न इमोजी के उदाहरण दिए गए हैं.
उदाहरण | वर्शन |
---|---|
🇨🇶 | 16.0 (सितंबर 2024) |
🐦🔥 🧑🧑🧒🧒 👩🏽🦽➡️ 🇲🇶 | 15.1 (सितंबर 2023) |
🩷 🫸🏼 🐦⬛ | 15.0 (सितंबर 2022) |
🫠 🫱🏼🫲🏿 🫰🏽 | 14.0 (सितंबर 2021) |
😶🌫️ 🧔🏻♀️ 🧑🏿❤️🧑🏾 | 13.1 (सितंबर 2020) |
🥲 🥷🏿 🐻❄️ | 13.0 (मार्च 2020) |
🧑🏻🦰 🧑🏿🦯 👩🏻🤝👩🏼 | 12.1 (अक्टूबर 2019) |
🦩 🦻🏿 👩🏼🤝👩🏻 | 12.0 (फ़रवरी 2019) |
मार्च 2023 के बीओएम (Compose UI 1.4) में, इमोजी के नए वर्शन के लिए सहायता उपलब्ध है. इसमें Android के पुराने वर्शन के साथ काम करने की सुविधा भी शामिल है. यह सुविधा, एपीआई 21 तक के वर्शन के साथ काम करती है.
इसके लिए, आपको अपने ऐप्लिकेशन में कोई बदलाव करने की ज़रूरत नहीं है. अगर Text
और TextField
(Material 2 या Material 3) या BasicText
और BasicTextField
का इस्तेमाल किया जाता है, तो आपको नए इमोजी इस्तेमाल करने की सुविधा तुरंत मिल जाती है.
अपने ऐप्लिकेशन में नए इमोजी को टेस्ट करने का सबसे अच्छा तरीका यह है कि आप एपीआई 30 या इससे पहले के वर्शन वाले किसी डिवाइस का इस्तेमाल करें.
अगर आपको कस्टम इमोजी का इस्तेमाल करना है या किसी अन्य वजह से, कंपोज़ करते समय डिफ़ॉल्ट इमोजी रिज़ॉल्यूशन की सुविधा बंद करनी है, तो PlatformTextStyle(emojiSupportMatch)
का इस्तेमाल करें:
Text( text = "Hello $EMOJI_TEXT", style = TextStyle( platformStyle = PlatformTextStyle( emojiSupportMatch = EmojiSupportMatch.None )/* ... */ ) )
इंटरऑपरेबिलिटी
अगर आपका ऐप्लिकेशन एक ही Activity
में Views और Compose, दोनों का इस्तेमाल करता है, तो पक्का करें कि इमोजी को सही तरीके से कॉन्फ़िगर करने के लिए, सही एपीआई का इस्तेमाल किया जा रहा हो. यहां दिए गए सेक्शन में, यह बताया गया है कि किस एपीआई का इस्तेमाल कब किया जाना चाहिए.
ComponentActivity
से अवधि बढ़ाई जा रही है
अगर आपका Activity
, AppCompatActivity
के बजाय Compose ComponentActivity
से एक्सटेंड होता है, तो AppCompat के बिना इमोजी इस्तेमाल करने की सुविधा से जुड़े निर्देशों का पालन करें.
AppCompatActivity
को एक्सटेंड नहीं किया जा रहा है. इसलिए, अपनी डिपेंडेंसी में Emoji2 लाइब्रेरी जोड़ें. साथ ही, यहां दिए गए स्निपेट में दिखाए गए तरीके से, TextView
विजेट के बजाय अपने व्यू में EmojiTextView
का इस्तेमाल करें:
class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val emojiTextView: EmojiTextView = findViewById(R.id.emoji_text_view) emojiTextView.text = getString(R.string.emoji_text_view, EMOJI_TEXT) val composeView: ComposeView = findViewById(R.id.compose_view) composeView.apply { setContent { // compose code } } } }
इसके बाद, अपनी एक्सएमएल फ़ाइल में:
<androidx.emoji2.widget.EmojiTextView android:id="@+id/emoji_text_view" android:layout_width="match_parent" android:layout_height="wrap_content" />
AppCompatActivity
से अवधि बढ़ाई जा रही है
अगर आपका Activity
, AppCompatActivity
से एक्सटेंड होता है, तो कंपोज़ेबल फ़ंक्शन को कॉल करने के लिए ComposeView
का इस्तेमाल किया जा सकता है. टेक्स्ट कंपोज़ेबल का इस्तेमाल करने पर, Android के सभी वर्शन पर इमोजी सही तरीके से रेंडर होते हैं.
अगर आपको AppCompatActivity
से एक्सटेंड करना है, तो इमोजी को सही तरीके से रेंडर करने के लिए, एक्सएमएल से TextView
को बड़ा करें.
यह तब लागू होता है, जब एक्सएमएल फ़ाइल में ये बदलाव किए जाते हैं:
ComposeView
के बाहर,Activity
में. यहां दिए गए स्निपेट में,AppCompatActivity
औरTextView
के इस्तेमाल पर ध्यान दें:
class MyActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val emojiTextView: TextView = findViewById(R.id.emoji_text_view) emojiTextView.text = getString(R.string.emoji_text_view, EMOJI_TEXT) val composeView: ComposeView = findViewById(R.id.compose_view) composeView.apply { setContent { // compose code } } } }
ComposeView
में,AndroidViewBinding
का इस्तेमाल करके व्यू बाइंडिंग के ज़रिए, जैसा कि इस स्निपेट में दिखाया गया है:
class MyActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView( ComposeView(this).apply { setContent { Column { Text(EMOJI_TEXT) AndroidViewBinding(ExampleViewBinding::inflate) { emojiTextView.text = EMOJI_TEXT } } } } ) } }
ComposeView
के अंदर AndroidView
का इस्तेमाल करके किसी टेक्स्ट को बड़ा करने के लिए, इमोजी को सही तरीके से रेंडर करने के लिए AppCompatTextView
का इस्तेमाल करें:
class MyActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView( ComposeView(this).apply { setContent { Column { Text(EMOJI_TEXT) AndroidView( factory = { context -> AppCompatTextView(context) }, update = { it.text = EMOJI_TEXT } ) } } } ) } }
ज़्यादा जानकारी के लिए, इंटरऑपरेबिलिटी एपीआई से जुड़ा दस्तावेज़ देखें.
समस्या का हल
अगर आपको इमोजी की जगह तोफ़ू (☐) दिख रहा है, तो पहले यह देखें कि समस्या आपके टेस्ट डिवाइस में तो नहीं है. यहां कुछ मुख्य चीज़ें दी गई हैं जिनकी जांच की जा सकती है:
- ऐसा हो सकता है कि आपने हाल ही में फ़्लैश किए गए डिवाइस या नए एम्युलेटर का इस्तेमाल किया हो. अगर हो सके, तो किसी ऐसे डिवाइस का इस्तेमाल करें जिसका इस्तेमाल अक्सर किया जाता है और जिसमें आपके Google खाते से साइन इन किया गया हो. ध्यान रखें कि एपीआई का लेवल 30 या इससे कम होना चाहिए, ताकि यह पक्का किया जा सके कि इमोजी सही वर्शन में काम कर रहे हैं.
- टेस्ट फ़ोन में, डाउनलोड किए जा सकने वाले फ़ॉन्ट इस्तेमाल नहीं किए जा सकते.
- Google Play services का सही वर्शन देखें.
आपके लिए सुझाव
- ध्यान दें: JavaScript बंद होने पर लिंक टेक्स्ट दिखता है
- अन्य बातें
- लिखे जा रहे ईमेल में मौजूद टेक्स्ट
- Scroll