2014-02-13 2 views
2

Я пытаюсь создать клавиатуру emoji. У меня проблема на одном из тестирующих устройств: Символы Emoji выглядят по-разному на клавиатуре и текстовом элементе.Символы Emoji выглядят по-разному на клавиатуре с меткой клавиатуры и textView

этикетки текст:

int code = key.codes[0]; 
key.label = String.valueOf(Character.toChars(code)); 

Текст совершали:

String text = String.valueOf(Character.toChars(code)); 
InputConnection ic = getCurrentInputConnection(); 
ic.beginBatchEdit(); 
ic.commitText(text, 1); 
ic.endBatchEdit(); 

Все работает отлично, но на Samsung-устройства У меня есть проблема. Например:

Я использую код 0x1F601 для emoji «улыбающееся лицо с улыбающимися глазами».

Key.label выглядеть следующим образом:

http://i.stack.imgur.com/f52db.png

, а затем я нажимаю, в TextView я вижу symblo выглядеть следующим образом:

http://i.imgur.com/SLaNOpt.png

Любое решение?

(извините за ссылки, но я не имею 10 репутацию после изображения, лолы)

+0

Изображения идентичны. – marsei

+0

Исправлено. Теперь изображения отображаются правильно. – Drafff

+0

Сказать, что это исправлено, не является хорошим способом, опубликуйте решение, которое вы сделали и отметили его, принимаете –

ответ

3

Стандарта Unicode определяет кодовые для 722 смайликов, но не предписывает какой-либо стиль или внешний вид. Он включает краткое описание для каждого эмози. Основываясь на этом описании, люди могут создавать свои собственные изображения или шрифты для отображения эможи.

Шрифт по умолчанию для Android (Roboto, as on 4.0+) включает монохромный emoji, у Apple есть шрифт с яркими эмози (ваша вторая фотография) и т. Д. Внешний вид зависит только от шрифта, который используется для их отображения.

WhatsApp для Android использует те же красочные эможи, которые использует Apple.

Ваш первый снимок может быть результатом другого шрифта или растровых изображений, которые используются для замены emoji в этом приложении.

Если вы хотите изменить внешний вид вашего смайликам, у вас есть по крайней мере два способа сделать это:

  • использовать другой шрифт, например, специальный шрифт, который вы внедренные в приложении.
  • Используйте Spannable s, чтобы заменить emoji на миниатюрные растровые изображения.

Подробнее: https://github.com/delight-im/Emoji

+0

«Используйте другой шрифт, например пользовательский шрифт, который вы встраиваете в свое приложение. " Вы знаете какой-то способ использовать другой шрифт с клавиатуры? «Используйте Spannables, чтобы заменить emoji на маленькие растровые изображения». InputConnection не поддерживает строки Spannables. – Drafff

+0

«InputConnection» просто передает связь с приложением, получая текст, верно? Это не то место, где вы меняете шрифт, либо применяете 'Spannable'.Только приложение может и должно контролировать внешний вид текста в его «EditText» (и т. Д.), Который получает текст. Для того, чтобы изменить шрифт ваших клавиатурных меток, я не знаю, но это определенно возможно. У вас нет файлов макетов для вашей клавиатуры? – caw

+0

Да, я могу определить шрифт клавиатуры-метки. Я пытаюсь определить стандартный шрифт и повторить выпуск. Я попытаюсь определить определенный шрифт. – Drafff

 Смежные вопросы

  • Нет связанных вопросов^_^