Что вы можете сделать, это создать пользовательский менеджер, который является контейнером для EditFields и BitmapFields. Когда пользователь нажимает на начальный EditField, который находится внутри вашего Менеджера и начинает печатать, вы позволяете им печатать, пока не захотите получить смайлик. Когда они выбирают его, вы создаете BitmapField сразу после EditField, а затем размещаете новый EditField справа от BitmapField. Вам нужно будет отслеживать такие вещи, как когда пользователь обращается к backspace и пустет EditField, он должен быть удален, а затем они выбирают BitmapField, а последующее backspace удаляет BitmapField и фокусирует внимание на предыдущем EditField.
Вам также нужно будет создать свой собственный EditField, который вы можете контролировать размер и BitmapField, который позволяет использовать backspace для его удаления.
Насколько я могу думать о будущем, вы не должны иметь никаких проблем с использованием этого для 5.0
Edit для комментариев:
Вы должны быть реализации собственного sublayout() из ваш Управляющий в любом подходе, который вы берете, поэтому вы знаете позиции, потому что вы тот, кто их там положил. Если вы хотите сделать многострочный (мой подход был для однострочного), вы можете сделать одну из трех вещей:
1.) Просто у меня есть новые EditFields для каждой строки и сделайте ссылку так же, как я говорил о том, где backspace отбрасывает вас в предыдущее поле, в этом случае последняя строка. Вы должны следить за тем, насколько велика область, основанная на тексте, и посмотреть, переместит ли она ее на следующую строку. Если он просто отрегулирует, где расположены поля EditFields.
2.) Вы можете разместить свое размещение изображений в многострочном поле, используя собственный EditField, который расширяет высоту, и в этом случае вы будете знать, где находится текст и какие строки вы находитесь. Рисование битмапа было бы вопросом расчета (какой номер строки вы) * (высота шрифта) и getAdvance (text_up_to_bitmap).
3.) Внесите свой собственный EditField, где у вас есть Focusable Manager, который вы вручную делаете с помощью всего чертежа. Вы можете проанализировать строку, которую вы сохраняете, от захвата штрихов и, возможно, иметь флаг, где должен быть смайлик. Нарисуйте текст перед ним, нарисуйте смайлик, затем продолжайте рисовать текст. Трудность в этом заключается в том, что вам придется делать такие вещи, как определение, где должен быть курсор, создание виртуальной клавиатуры и обработка некоторых других задач, которые EditField делает для вас.
См. Соответствующие http://stackoverflow.com/questions/5683793/emoji-emoticons-on-blackberry-and-android-app-how-to-support –
Уже сделано :) –
См. Альтернативный ответ http: // stackoverflow .com/вопросы/7268276/blackberry-emoticons-in-chat-application/7861476 # 7861476 –