Bagaimana cara mengatur emoji dengan unicode dalam textview?


94

Hai, saya ingin melakukan hal berikut:

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

untuk mendapatkan ini di textview saya:

Senang sekali 😊

Bagaimana saya bisa menerapkan getEmojiByUnicode(unicode)?

Jenis unicodevariabel apa yang seharusnya? (String, char, int?)

Harap dicatat bahwa saya TIDAK ingin menggunakan Drawable!

Jawaban:


185

Menemukan solusi:

Di unicode saya, saya mengganti ' U + ' dengan ' 0x '

Contoh: ganti ' U + 1F60A ' dengan ' 0x1F60A '

Dengan cara ini saya mendapat 'int' like

int unicode = 0x1F60A;

Yang bisa digunakan dengan

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

Jadi Textview menampilkan 😊 tanpa Drawable

Cobalah dengan http://apps.timwhitlock.info/emoji/tables/unicode


3
bekerja pada 5.1 tetapi pada 4.4.4 saya mendapatkan? untuk string emoji saya
filthy_wizard

21
Apakah mungkin melakukan ini di file strings.xml?
Spektakulatius

@ user1232726, Ini akan tergantung pada ponsel pengguna termasuk emoji yang digunakan.
Suragch

Bisakah kamu membantu untuk mengubah "5794d5f7895fa10a8f8e1357" ini menjadi EMOJI .. @GilbertGiesbert .. Terima kasih ...
Ravindra Kushwaha

2
Sayangnya itu tidak berfungsi dengan Unicode 32 bit, seperti U + 1F1EF U + 1F1F2. Nilai ini berada di luar batas bilangan bulat.
Chris - Jr

40

Anda dapat langsung menggunakan Emoji dalam sumber daya string dengan menggunakan kode desimal seperti ini:

😊

sebagai contoh:

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

11
Ini jawaban yang bagus; untuk menemukan kode desimal emoji, Anda dapat menggunakan sesuatu seperti quackit.com/character_sets/emoji
Adinia

1
saya tidak menemukan x diperlukan
hmac

3
Kesalahan saat membangun: Referensi karakter "& #
Dr. aNdRO

@hmac Saya telah memutar kembali jawabannya, menghapus sebutanx
Vadim Kotov

4

Catatan: Untuk Kotlin

fun getEmoji(unicode: Int): String {
    return String(Character.toChars(unicode))
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.