Внедрение смайликов (смайликов изображений) на пользовательскую Android-клавиатуру
Я создал пользовательскую мягкую клавиатуру (IME), в которую мы можем добавить пользовательские эмодзи.
Всякий раз, когда я пытаюсь добавить свои смайлики к нему. он отменяет последний введенный текст. Я имею в виду, что он не добавляет смайлики, если он не отменяет его. Как я могу добавить Emoji в currentInputConnection
например
i image write hello image abcimage ///where image represents emoji
это становится
i image write hello image image
// и я могу легко добавить изображение после пробела, или я могу легко добавлять изображения.
когда я добавляю текст, он добавляется к смайликам, но когда я добавляю смайлики после ввода некоторого текста, он удаляет текст и затем добавляет его сам (изображение смайликов).
Просто для целей тестирования я поместил код Emoji в клавишу Shift
Код проблемы
else if (primaryCode == Keyboard.KEYCODE_SHIFT)
{
// this.handleShift();
//this.mComposing.append(getSmiledText(getApplicationContext(), ":)"));
ImageGetter imageGetter = new ImageGetter()
{
public Drawable getDrawable(String source) {
Drawable d = getResources().getDrawable(R.drawable.e041);
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
return d;
}
};
Spanned cs = Html.fromHtml("<img src='" + getResources().getDrawable(R.drawable.e041) + "'/>", imageGetter, null);
// getCurrentInputConnection().commitText(cs, 1);
// this.mComposing.append(cs);
//getCurrentInputConnection().commitText(getSmiledText(getApplicationContext(), ":)"), 1);
getCurrentInputConnection().beginBatchEdit();
getCurrentInputConnection().commitText(cs, 1);
getCurrentInputConnection().endBatchEdit();
//getCurrentInputConnection().setComposingText(cs, 1); // it is giving wrong
}
И пробовал несколько способов ее решить, некоторые пробные коды показаны в комментариях
Простые слова: я хочу добавить смайлик к тексту, но когда я добавляю изображение к тексту, он удаляет письменный текст, как я могу решить. полный источник не может быть показан, это долго. Спросите меня, если вам нужен какой-либо метод в моем классе
Ссылка по теме:
добавить пользовательское изображение в качестве Emoji в Android
https://stackru.com/questions/24100615/cannot-add-an-image-to-my-keyboard-service
Реализации Emoji (смайлик) Вид / раскладки клавиатуры
Заранее спасибо.
1 ответ
Я также пытался на то же самое, но всегда получал "obj". Наконец я нашел решение, попробуйте это.
Вместо добавления рисунков просто добавьте смайлики по их юникодам, как это..
getCurrentInputConnection (). commitText ((CharSequence) "\ ud83c \ udfb5", 1);
Он отлично работает для меня. А также удалите beginBatchEdit и endBatchEdit из вашего кода.
Спасибо