10

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

Android built-in emoji

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

+0

у кого есть какие-нибудь идеи? – user1715925

ответ

3

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

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

  2. При совершении ключа, использование: getCurrentInputConnection().commitText(String.valueOf(Character.toChars(primaryCode)), 1);

4

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

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

+0

Спасибо. Однако мой телефон поддерживает тот же набор значков, что и на скриншоте выше.Я не знаю, почему он отображал старые значки, когда я отправил соответствующую последовательность юникодов. Кроме того, как я могу получить представление о моей пользовательской клавиатуре, демонстрирующей эти смайлики, как на скриншоте выше? – user1715925

+0

Предполагая, что вы используете текстовые изображения на своей клавиатуре: [stackoverflow - set-font-at-runtime-textview] (http://stackoverflow.com/questions/3483110/set-font-at-runtime-textview) – leoderprofi

6

Emoticons-Keyboard

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

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

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/

2

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

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

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