Как установить Emoji по Юникод в текстовом виде?
Привет я хотел бы сделать следующее:
??? unicode = U+1F60A
String emoji = getEmojiByUnicode(unicode)
String text = "So happy "
textview.setText(text + emoji);
чтобы получить это в моем textview:
Так счастлив 😊
Как я могу реализовать getEmojiByUnicode(unicode)
?
Какого типа должна быть переменная unicode
? (Строка, символ, int?)
Обратите внимание, что я НЕ хочу использовать Drawables!
Ответы
Ответ 1
Найдено решение:
В моем юникоде я заменил ' U +' на 0x '
Пример: замените ' U + 1F60A' на ' 0x1F60A'
Таким образом, я получил 'int', как
int unicode = 0x1F60A;
Что можно использовать с
public String getEmojiByUnicode(int unicode){
return new String(Character.toChars(unicode));
}
Итак, Textview отображает 😊 без Drawable
Попробуйте с http://apps.timwhitlock.info/emoji/tables/unicode
Ответ 2
Вы можете напрямую использовать Emojis в строковых ресурсах, используя десятичный код, подобный следующему:
😊
например:
<string name="emoji">I am happy 😊</>
Ответ 3
Примечание: для Kotlin
fun getEmoji(unicode: Int): String {
return String(Character.toChars(unicode))
}