Come impostare le emoji di Unicode in una visualizzazione di testo?


93

Salve, vorrei fare quanto segue:

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

per ottenere questo nella mia visualizzazione di testo:

Così felice 😊

Come posso implementare getEmojiByUnicode(unicode)?

Di che tipo dovrebbe unicodeessere la variabile? (String, char, int?)

Si prega di notare che NON voglio usare Drawables!

Risposte:


184

Trovato una soluzione:

Nel mio unicode ho sostituito " U + " con " 0x "

Esempio: sostituire " U + 1F60A " con " 0x1F60A "

In questo modo ho ottenuto un "int" come

int unicode = 0x1F60A;

Che può essere utilizzato con

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

Quindi Textview mostra 😊 senza Drawable

Provalo con http://apps.timwhitlock.info/emoji/tables/unicode


3
funziona su 5.1 ma su 4.4.4 ottengo un? per la mia stringa emoji
filthy_wizard

21
È possibile farlo nel file strings.xml?
Spektakulatius

@ user1232726, Questo dipenderà dal telefono dell'utente, inclusa l'emoji utilizzata.
Suragch

Puoi aiutarci per favore a convertire questo "5794d5f7895fa10a8f8e1357" in EMOJI .. @GilbertGiesbert ..Thanks ...
Ravindra Kushwaha

2
Sfortunatamente non funziona con Unicode a 32 bit, come U + 1F1EF U + 1F1F2. Questo valore è al di fuori dei limiti dei numeri interi.
Chris - Jr

39

Puoi utilizzare direttamente Emoji nelle risorse stringa utilizzando il codice decimale in questo modo:

😊

per esempio:

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

10
Questa è una buona risposta; per trovare il codice decimale di un'emoji, puoi usare qualcosa come quackit.com/character_sets/emoji
Adinia

1
non trovo la x necessaria
hmac

3
Errore durante la compilazione: riferimento al carattere "& #
Dr. aNdRO

@hmac Ho annullato la risposta, rimosso le menzioni dix
Vadim Kotov

3

Nota: per Kotlin

fun getEmoji(unicode: Int): String {
    return String(Character.toChars(unicode))
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.