Bir metin görünümünde unicode ile emoji nasıl ayarlanır?


94

Merhaba aşağıdakileri yapmak istiyorum:

??? unicode = U+1F60A
String emoji = getEmojiByUnicode(unicode)
String text = "So happy "
textview.setText(text + emoji);

bunu metin görünümümde almak için:

Çok mutluyum 😊

Nasıl uygulayabilirim getEmojiByUnicode(unicode)?

unicodeDeğişken ne tür olmalıdır ? (String, char, int?)

Lütfen Drawables'ı kullanmak İSTEMİYORUM!

Yanıtlar:


186

Bir çözüm buldum:

Unicode'umda ' U + ' yerine ' 0x ' yazdım

Örnek: " U + 1F60A " " 0x1F60A " ile değiştirin

Bu şekilde bir 'int' beğenirim

int unicode = 0x1F60A;

Hangisi ile kullanılabilir

public String getEmojiByUnicode(int unicode){
    return new String(Character.toChars(unicode));
}

Böylece Textview 😊'ı Çizilebilir olmadan görüntüler

İle deneyin http://apps.timwhitlock.info/emoji/tables/unicode


3
5.1'de çalışıyor ancak 4.4.4'te bir alıyorum? emoji
dizem

21
Bunu strings.xml dosyasında yapmak mümkün mü?
Spektakulatius

@ user1232726, Bu, kullanılan emoji dahil olmak üzere kullanıcının telefonuna bağlı olacaktır.
Suragch

U bu "5794d5f7895fa10a8f8e1357" EMOJI .. @GilbertGiesbert ..Thanks ... haline dönüştürmek için yardım Lütfen artık
Ravindra Kushwaha

2
Maalesef U + 1F1EF U + 1F1F2 gibi 32 bit Unicode ile çalışmıyor. Bu değer tam sayı sınırlarının dışındadır.
Chris - Jr

40

Aşağıdaki gibi ondalık kodu kullanarak dize kaynaklarında doğrudan Emojileri kullanabilirsiniz:

😊

Örneğin:

<string name="emoji">I am happy &#128522;</>

11
Bu iyi bir cevap; bir emojinin
Adinia

1
x'i gerekli bulamıyorum
hmac

3
Derleme sırasında hata: Karakter referansı "& #
Dr. aNdRO

@hmac Cevabı geri aldım, sözler kaldırıldıx
Vadim Kotov 14'19

4

Not: Kotlin için

fun getEmoji(unicode: Int): String {
    return String(Character.toChars(unicode))
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.