2013-05-13 2 views
8

У меня есть кусок кода, который добавляет некоторые изображения в EditText используя SpannableString следующим образом:SpannableString не отображается корректно в ландшафтном режиме

SpannableString ss = new SpannableString("Some random String in my application."); 
Drawable d = getResources().getDrawable(R.drawable.emoticon_0001); 
ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BOTTOM); 
ss.setSpan(span, startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

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

Портрет и пейзаж в режиме без редактирования:

Portrait Landscape

Однако, как только я начала редактирования в ландшафтном режиме, текст за изображение появляется:

My name is problem, BIG problem

Как известно большинству людей, странная строка представляет собой Unicode для Emoticon в iPhone. Кто-нибудь сталкивался с этой проблемой раньше?

РЕДАКТИРОВАТЬ: Протестировано с android:imeOptions="actionDone|flagNoExtractUi", не работает, предложение слова прикроет мой EditText.

+0

Я не видел этого, но я сделал достаточно работы с клавиатурой, чтобы иметь хорошее предположение о том, что происходит. Похоже, когда отображается ExtractView (представление экстракта является частью пейзажного редактирования над клавиатурой, его фактически нарисовано платформой Android и является частью вашего приложения из POV клавиатуры), вы теряете свой диапазон изображений и просто там размещается простой текст. Почему и как вы это исправите, на данный момент у меня нет хороших идей. Это происходит и в других приложениях? Скажите приложение для обмена сообщениями? Что такое редактирование в портрете? –

+0

Спасибо за информацию, я протестировал с помощью известного приложения для обмена сообщениями Whatsapp. И он показывает пустое пространство на этих смайликах. Это имеет смысл, потому что эти символы представляют Unicode, который будет пустым пространством, если они не могут найти правильный символ, прикрепленный к коду. Точно так же, как отправка emoji с iPhone SMS на устройство Android, также будет отображаться пустое пространство. –

+1

@GabeSechan Извините, не ответил на ваш вопрос, редактирование в портретном режиме прекрасно работает. Проблема возникает только при редактировании ландшафта, а также в Whatsapp. –

ответ

0

Я предлагаю вам преобразовать HTML-код в строку spannable в чистую строку UNICODE перед тем, как показывать редактирующую клавиатуру. Если смайлики в UNICODE поддерживаются, то они должны отображаться при редактировании. По завершении редактирования переведите его обратно в HTML.

android html decoding

+0

не очень уверен, поддерживает ли Android этот юникод emoji сейчас, в то время, когда я задавал этот вопрос, uno-коды emoji только «законны» на iPhone. Скажем, если вы отправляете SMS с iphone на Android, с emoji в нем, андроид ничего не видит. –

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

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