Comment définir emoji par unicode dans une vue de texte?


94

Salut, j'aimerais faire ce qui suit:

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

pour obtenir ceci dans ma vue de texte:

Tellement heureux 😊

Comment puis-je mettre en œuvre getEmojiByUnicode(unicode)?

Quel type devrait être la unicodevariable? (Chaîne, caractère, entier?)

Veuillez noter que je ne souhaite PAS utiliser Drawables!

Réponses:


185

Trouvé une solution:

Dans mon unicode, j'ai remplacé « U + » par « 0x »

Exemple: remplacez ' U + 1F60A ' par ' 0x1F60A '

De cette façon, j'ai un 'int' comme

int unicode = 0x1F60A;

Qui peut être utilisé avec

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

Donc Textview affiche 😊 sans Drawable

Essayez-le avec http://apps.timwhitlock.info/emoji/tables/unicode


3
fonctionne sur 5.1 mais sur 4.4.4 j'obtiens un? pour ma chaîne emoji
filthy_wizard

21
Est-il possible de le faire dans le fichier strings.xml?
Spektakulatius

@ user1232726, Cela dépendra du téléphone de l'utilisateur, y compris l'emoji utilisé.
Suragch

Pouvez-vous s'il vous plaît aider à convertir ce "5794d5f7895fa10a8f8e1357" en EMOJI .. @GilbertGiesbert ..Merci ...
Ravindra Kushwaha

2
Malheureusement, cela ne fonctionne pas avec Unicode 32 bits, comme U + 1F1EF U + 1F1F2. Cette valeur est en dehors des limites des nombres entiers.
Chris - Jr

40

Vous pouvez utiliser directement Emojis dans les ressources de chaîne en utilisant le code décimal comme ceci:

😊

par exemple:

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

11
C'est une bonne réponse; pour trouver le code décimal d'un emoji, vous pouvez utiliser quelque chose comme quackit.com/character_sets/emoji
Adinia

1
Je ne trouve pas le x nécessaire
hmac

3
Erreur lors de la construction: Référence du personnage "& #
Dr. aNdRO

@hmac J'ai annulé la réponse, supprimé les mentions dex
Vadim Kotov

3

Remarque: pour Kotlin

fun getEmoji(unicode: Int): String {
    return String(Character.toChars(unicode))
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.