дисплей встроенный emoji ключи для inputmethod

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

Android built-in emoji

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

4 ответов


Смайлы-Клавиатура

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

после перекрестных ссылок на поддерживаемые последовательности Юникода, а также визуальную базу данных Юникода я понял, что **u1F601** был 32 представление Юникода бита, и 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/


перейти к https://en.m.wikipedia.org/wiki/Emoji чтобы увидеть, какие emojis устройство поддерживает с unicode.

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


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

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

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


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

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

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