Як встановити смайлик за допомогою Unicode в текстовому перегляді?


94

Привіт, я хотів би зробити наступне:

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

щоб отримати це в моєму текстовому перегляді:

Такий щасливий 😊

Як я можу реалізувати getEmojiByUnicode(unicode)?

Якого типу повинна unicodeбути змінна? (Рядок, char, int?)

Зверніть увагу, що я НЕ хочу користуватись засобами для малювання!

Відповіді:


185

Знайшли рішення:

У своєму юнікоді я замінив " 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


3
працює на 5.1, але на 4.4.4 я отримую? для мого рядка смайлів
filthy_wizard

21
Чи можна це зробити у файлі strings.xml?
Spektakulatius

@ user1232726, Це залежатиме від телефону користувача, включаючи смайли, що використовуються.
Сурагч

Чи можете ви допомогти перетворити цей "5794d5f7895fa10a8f8e1357" на EMOJI .. @GilbertGiesbert .. Спасибі ...
Равіндра Кушвава

2
На жаль, він не працює з 32-бітовим Unicode, наприклад U + 1F1EF U + 1F1F2. Це значення виходить за межі цілих чисел.
Кріс - молодший

40

Ви можете безпосередньо використовувати Emojis у рядкових ресурсах, використовуючи десятковий код, як це:

😊

наприклад:

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

11
Це хороша відповідь; щоб знайти десятковий код смайлика
Adinia

1
я не вважаю х потрібним
hmac

3
Помилка під час побудови: посилання на символ "& #
Dr. aNdRO

@hmac Я відкотив відповідь, видалив згадки проx
Вадима Котова

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.