Wie setze ich Emoji per Unicode in einer Textansicht?


93

Hallo, ich möchte Folgendes tun:

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

um dies in meiner Textansicht zu bekommen:

So glücklich 😊

Wie kann ich implementieren getEmojiByUnicode(unicode)?

Welcher Typ sollte die unicodeVariable sein? (String, char, int?)

Bitte beachten Sie, dass ich keine Drawables verwenden möchte!

Antworten:


183

Eine Lösung gefunden:

In meinem Unicode habe ich ' U + ' durch ' 0x ' ersetzt.

Beispiel: Ersetzen Sie ' U + 1F60A ' durch ' 0x1F60A '

Auf diese Weise bekam ich ein "int" wie

int unicode = 0x1F60A;

Welches kann mit verwendet werden

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

Textview zeigt also 😊 ohne Drawable an

Versuchen Sie es mit http://apps.timwhitlock.info/emoji/tables/unicode


3
funktioniert auf 5.1 aber auf 4.4.4 bekomme ich ein? für meine Emoji-Zeichenfolge
filthy_wizard

21
Ist dies in der Datei strings.xml möglich?
Spektakulatius

@ user1232726, Dies hängt vom Telefon des Benutzers ab, einschließlich des verwendeten Emoji.
Suragch

Kannst du bitte helfen, diese "5794d5f7895fa10a8f8e1357" in die EMOJI umzuwandeln? @GilbertGiesbert .. Danke ...
Ravindra Kushwaha

1
Leider funktioniert es nicht mit 32-Bit-Unicode wie U + 1F1EF U + 1F1F2. Dieser Wert liegt außerhalb der Ganzzahlgrenzen.
Chris - Jr

39

Sie können Emojis direkt in Zeichenfolgenressourcen verwenden, indem Sie den folgenden Dezimalcode verwenden:

😊

beispielsweise:

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

10
Dies ist eine gute Antwort; Um
Adinia

1
Ich finde das x nicht notwendig
hmac

3
Fehler beim Erstellen:
Zeichenreferenz

@hmac Ich habe die Antwort zurückgesetzt, Erwähnungen vonx
Vadim Kotov

3

Hinweis: Für Kotlin

fun getEmoji(unicode: Int): String {
    return String(Character.toChars(unicode))
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.