Emoji kullanımı tüm uygulama türlerinde hızla arttığından standart emoji grubu Unicode tarafından yılda bir kez yenilenir.
Uygulamanız internet içeriği gösteriyorsa veya metin girişi sağlıyorsa en son emoji yazı tiplerini desteklemenizi önemle tavsiye ederiz. Aksi takdirde, sonraki emojiler tofu (☐) adı verilen küçük bir kare kutu veya yanlış oluşturulmuş diğer emoji sıralamaları olarak gösterilebilir.
Android 11 (API düzeyi 30) ve önceki sürümler emoji yazı tipini güncelleyemez. Bu nedenle, bu sürümlerde emoji gösteren uygulamalar manuel olarak güncellenmelidir.
Aşağıda modern emoji örnekleri verilmiştir.
Örnekler | Sürüm |
---|---|
🫠 🫱🏼🫲🏿 🫰🏽 | 14.0 (Eylül 2021) |
😶🌫️ 🧔🏻♀️ 🧑🏿❤️🧑🏾 | 13.1 (Eylül 2020) |
🥲 🥷🏿 🐻❄️ | 13.0 (Mart 2020) |
🧑🏻🦰 🧑🏿🦯 👩🏻🤝👩🏼 | 12.1 (Ekim 2019) |
🦩 🦻🏿 👩🏼🤝👩🏻 | 12.0 (Şubat 2019) |
BOM Mart 2023 (Oluşturma kullanıcı arayüzü 1.4), API 21'e kadar eski Android sürümleriyle geriye dönük uyumluluk da dahil olmak üzere en son emoji sürümüne destek sunar.
Bu destek için uygulamanızda herhangi bir değişiklik yapmanız gerekmez. Text
ve TextField
(Materyal 2 veya Materyal 3) ya da BasicText
ve BasicTextField
kullanıyorsanız modern emoji desteğini kullanıma hazır olarak alırsınız.
Uygulamanızda en yeni emojileri test etmenin en iyi yolu, API 30 veya önceki bir sürüm yüklü gerçek bir cihaz kullanmaktır.
Özel bir emoji çözümü kullanıyorsanız veya farklı bir nedenle Compose'da varsayılan emoji çözünürlüğünü devre dışı bırakmanız gerekiyorsa PlatformTextStyle(emojiSupportMatch)
simgesini kullanabilirsiniz:
Text( text = "Hello $EMOJI_TEXT", style = TextStyle( platformStyle = PlatformTextStyle( emojiSupportMatch = EmojiSupportMatch.None )/* ... */ ) )
Birlikte çalışabilirlik
Uygulamanız aynı Activity
içinde hem Görüntüle hem de Oluştur'u kullanıyorsa emojileri doğru şekilde yapılandırmak için uygun API'leri kullandığınızdan emin olun. Aşağıdaki bölümlerde her API'nin ne zaman kullanılacağı açıklanmaktadır.
ComponentActivity
'ten uzatılıyor
Activity
, AppCompatActivity
yerine Oluştur'dan ComponentActivity
uzanıyorsa AppCompat olmadan emoji desteği talimatlarını uygulayın.
AppCompatActivity
uzantısını genişletmediğiniz için bağımlılıklarınıza Emoji2 kitaplığını ekleyin ve aşağıdaki snippet'te gösterildiği gibi görünümlerinizde TextView
widget'ı yerine EmojiTextView
kullanın:
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 } } } }
Ardından XML dosyanızda:
<androidx.emoji2.widget.EmojiTextView android:id="@+id/emoji_text_view" android:layout_width="match_parent" android:layout_height="wrap_content" />
AppCompatActivity
'ten uzatılıyor
Activity
, AppCompatActivity
'ten uzanıyorsa birleştirilebilir işlevleri çağırmak için ComposeView
kullanabilirsiniz. Metin bileşenlerini kullandığınızda emojiler Android sürümlerinde doğru şekilde oluşturulur.
AppCompatActivity
'ten genişletiyorsanız emojilerin doğru şekilde oluşturulması için XML'den TextView
öğesini şişirin.
Bu, XML dosyasını şişiriyorsanız geçerlidir:
ComposeView
dışında,Activity
içinde. Aşağıdaki snippet'teAppCompatActivity
veTextView
kullanımı dikkatinizi çekecektir:
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
içinde, aşağıdaki snippet'te olduğu gibiAndroidViewBinding
kullanarak görüntü bağlama aracılığıyla:
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
içinde AndroidView
bulunan bir metni genişletmek için emojileri doğru şekilde oluşturmak üzere AppCompatTextView
kullanın:
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 } ) } } } ) } }
Ayrıntılar için İşlevsel Uyumluluk API'leri dokümanlarına bakın.
Sorun giderme
Emoji yerine tofu (☐) görüyorsanız önce sorunun test cihazınızdan kaynaklanıp kaynaklanmadığını kontrol edin. Kontrol edebileceğiniz birkaç temel nokta vardır:
- Yakın zamanda flaş belleği takılmış bir cihaz veya yeni bir emülatör kullanıyor olabilirsiniz. Mümkünse Google Hesabınızda oturum açmış sık kullandığınız başka bir gerçek test cihazını deneyin. Emojilerin doğru sürümlerde çalıştığından emin olmak için API'nin 30 veya daha düşük olması gerektiğini unutmayın.
- Test telefonu indirilebilir yazı tiplerini desteklemiyor.
- Doğru Google Play Hizmetleri sürümünü kontrol edin.
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir
- Dikkat edilmesi gereken diğer noktalar
- Oluşturma bölümündeki metin
- Kaydırma