इमोजी के स्टैंडर्ड सेट को सालाना रीफ़्रेश किया जाता है यूनिकोड, क्योंकि इमोजी का इस्तेमाल बढ़ रहा है तेज़ी से काम करता है.
अगर आपका ऐप्लिकेशन इंटरनेट कॉन्टेंट दिखाता है या टेक्स्ट इनपुट उपलब्ध कराता है, तो हम सुझाव देते हैं कि नए इमोजी फ़ॉन्ट के साथ काम करने का सुझाव दें. ऐसा न करने पर, हो सकता है कि बाद में इमोजी किसी छोटे स्क्वेयर बॉक्स के तौर पर दिखाया जाना, जिसे टोफ़ू (☐) या गलत तरीके से रेंडर किया गया है इमोजी का क्रम तय करें.
Android 11 (एपीआई लेवल 30) और इससे पहले के वर्शन के लिए, इमोजी का फ़ॉन्ट अपडेट नहीं किया जा सकता. इसलिए उन वर्शन पर दिखाने वाले ऐप्लिकेशन को मैन्युअल तरीके से अपडेट करना चाहिए.
आधुनिक इमोजी के उदाहरण यहां दिए गए हैं.
उदाहरण | वर्शन |
---|---|
🫠 🫱🏼🫲🏿 🫰🏽 | 14.0 (सितंबर 2021) |
😶🌫️ 🧔🏻♀️ 🧑🏿❤️🧑🏾 | 13.1 (सितंबर 2020) |
🥲 🥷🏿 🐻❄️ | 13.0 (मार्च 2020) |
🧑🏻🦰 🧑🏿🦯 👩🏻🤝👩🏼 | 12.1 (अक्टूबर 2019) |
🦩 🦻🏿 👩🏼🤝👩🏻 | 12.0 (फ़रवरी 2019) |
BOM मार्च 2023 (Compose का यूज़र इंटरफ़ेस 1.4) में नए इमोजी का इस्तेमाल किया जा सकता है वर्शन, जिसमें Android के पुराने वर्शन के साथ काम करने की सुविधा शामिल है को एपीआई 21 में अपग्रेड करने की ज़रूरत नहीं है.
इस सहायता के लिए आपको अपने ऐप्लिकेशन में कोई बदलाव नहीं करना होगा—अगर आप Text
और
TextField
(सामग्री 2 या 3 सामग्री) या BasicText
और
BasicTextField
, आपको नई तरह से इमोजी के लिए सहायता मिलती है.
अपने ऐप्लिकेशन में नए इमोजी की जांच करने का सबसे अच्छा तरीका, एपीआई लेवल 30 या इससे पहले के वर्शन वाला असली डिवाइस.
अगर पसंद के मुताबिक बनाया गया इमोजी इस्तेमाल किया जा रहा है या डिफ़ॉल्ट इमोजी को बंद करना है, तो
कंपोज़ में रिज़ॉल्यूशन है, तो
PlatformTextStyle(emojiSupportMatch)
:
Text( text = "Hello $EMOJI_TEXT", style = TextStyle( platformStyle = PlatformTextStyle( emojiSupportMatch = EmojiSupportMatch.None )/* ... */ ) )
इंटरोऑपरेटिविटी
अगर आपका ऐप्लिकेशन एक ही Activity
में व्यू और कंपोज़, दोनों का इस्तेमाल करता है, तो पक्का करें कि
इमोजी को सही तरीके से कॉन्फ़िगर करने के लिए, सही एपीआई का इस्तेमाल कर रहे हैं. नीचे दिए गए
सेक्शन में बताया गया है कि एपीआई का इस्तेमाल कब करना चाहिए.
ComponentActivity
से बढ़ाया जा रहा है
अगर आपका Activity
'लिखें' ComponentActivity
से शुरू होता है, तो
AppCompatActivity
, AppCompat के बिना सहायता वाले इमोजी को फ़ॉलो करें
निर्देश.
आप AppCompatActivity
को आगे नहीं बढ़ा रहे हैं, इसलिए इमोजी2 जोड़ें
लाइब्रेरी में जोड़ा जा सकता है और अपने व्यू में EmojiTextView
का इस्तेमाल किया जा सकता है
के बजाय, TextView
विजेट का इस्तेमाल करें, जैसा कि नीचे दिए गए स्निपेट में दिखाया गया है:
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 } ) } } } ) } }
ज़्यादा जानकारी के लिए, Interoperability API से जुड़ा दस्तावेज़ देखें.
समस्या का हल
अगर आपको इमोजी के बजाय टोफ़ू (☐) दिख रहा है, तो सबसे पहले देखें कि क्या समस्या आपके टेस्ट डिवाइस पर. यहां कुछ मुख्य बातें बताई गई हैं, जिनकी जांच की जा सकती है:
- ऐसा हो सकता है कि हाल ही में फ़्लैश किए गए डिवाइस या नए एम्युलेटर का इस्तेमाल किया जा रहा हो. अगर आपने मुमकिन है, तो किसी ऐसे असली टेस्ट डिवाइस को आज़माएँ जिसमें अक्सर साइन इन किया हुआ हो आपका Google खाता. याद रखें कि एपीआई का साइज़ 30 या उससे कम होना चाहिए, ताकि यह पक्का किया जा सके कि इमोजी सही वर्शन में काम करते हैं.
- टेस्ट फ़ोन पर, डाउनलोड किए जा सकने वाले फ़ॉन्ट काम नहीं करते.
- Google Play services का सही वर्शन देखें.
आपके लिए सुझाव
- ध्यान दें: JavaScript बंद होने पर लिंक टेक्स्ट दिखता है
- ध्यान देने वाली अन्य बातें
- Compose में टेक्स्ट
- Scroll