Отображать встроенные клавиши emoji для ввода метода

Я создаю специальную мягкую клавиатуру для Android и хотел бы добавить макет, чтобы включить клавиши emoji, похожие на то, что делает клавиатура Android по умолчанию (AOSP). Я искал, но кажется, что большинство людей пытается отображать пользовательские эможи из изображений. Я хочу показать встроенные значки, которые поставляются с Android (как показано ниже):

Android built-in emoji

Кажется, что я должен использовать символы Unicode для отправки изображений с клавиатуры, но моя первая попытка, похоже, генерирует только более старые версии emojis. Как я могу поддерживать новейшую эмуляцию телефона? Кроме того, как мне отображать emojis на моей клавиатуре, как на изображении выше?

Ответ 1

Спасибо за все предложения. То, что я получил, чтобы показать макет emoji на моей пользовательской клавиатуре, было следующим:

  • В файле макета .xml для каждого emoji, который вы хотите добавить, создайте строку следующим образом: <Key android:codes="0x1F602" android:keyLabel="\ud83d\ude02"/>

  • При фиксации ключа используйте: getCurrentInputConnection().commitText(String.valueOf(Character.toChars(primaryCode)), 1);

Ответ 2

Emoticons-Keyboard

1) вместо emitos, я заменил ImageView, содержащий актив, с помощью TextView, содержащего последовательность Unicode.

После перекрестных ссылок Поддерживаемые Unicode-последовательности, а также в базе данных Visual Unicode я понял, что ** u1F601 ** представляет собой представление Unicode 32, а представление 16 бит может быть установленным как:

EditText messageInput = (EditText) findViewById(R.id.message_input);
messageInput.getText().append("\ud83d\ude01");

2) http://android.appstorm.net/how-to/customization/how-to-use-emojis-on-your-android-device/

Ответ 3

Перейдите в https://en.m.wikipedia.org/wiki/Emoji, чтобы узнать, какой эмулятор поддерживает ваше устройство с помощью unicode.

Как вы знаете, какой emoji показан, зависит от используемого вами шрифта, поэтому для получения последнего emojis используйте NotoColorEmoji.ttf в качестве шрифта для вашего приложения.

Ответ 4

Поддержка Emoticon не работает, как вы думаете. Не существует универсального набора emojis, поддерживаемого всеми устройствами Android, а emojis, поддерживаемый вашим устройством, может отличаться на разных устройствах. Emojis выполняется на Android в 1 из 2 способов.

1) Юникода. Какое emojis поддерживает устройство, зависит от шрифта, который использует приложение. Вы просто отправляете unicode так же, как и обычный текст, и отобразите его на клавиатуре, показывая этот символ. Для этого метода вы догадываетесь, по каким телефонам он будет поддерживать. И это общее предположение, потому что это зависит от того, какой шрифт использует приложение.

2) Пролисты изображения. Вы вставляете ImageSpannable в текст, который вы отправляете через commitText. Преимущество этого заключается в том, что вы уверены, что у вас есть изображение (вам нужно включить изображения в приложение). Недостатком является то, что он не может быть отправлен на другое устройство, сохранен и может не работать во всех приложениях (они могут не отображать объекты, способные к spannable).