我正在开发一个聊天应用程序,我正在实现表情符号,但我在适配器中有一个问题如何在Textview中呈现表情符号。
emocationGrid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
emoDrawables.get(position).setBounds(0, 0, emoDrawables.get(position).getIntrinsicWidth(),
emoDrawables.get(position).getIntrinsicHeight());
int selectionCursor = chatMsgEtd.getSelectionStart();
chatMsgEtd.getText().insert(selectionCursor, ".");
selectionCursor = chatMsgEtd.getSelectionStart();
SpannableStringBuilder builder = new SpannableStringBuilder(chatMsgEtd.getText());
builder.setSpan(new ImageSpan(emoDrawables.get(position)), selectionCursor - ".".length(),
selectionCursor, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
chatMsgEtd.setText(builder);
chatMsgEtd.setSelection(selectionCursor);
}
});
适配器
chatMsgTxt.setText(chats.get(position).getMessage());
因此在适配器中,getMessage是聊天消息,但在这里如何使用消息呈现表情符号。
请仔细阅读我的帖子并向我推荐一些解决方案。
答案 0 :(得分:0)
您可以在TextView
上设置范围,很可能要扩展DynamicDrawableSpan
并将图像输入范围。如果你的目标是渲染iOS emojis而不是默认的android表情符号,你应该使用像https://github.com/instachat/emoji-library或https://github.com/rockerhieu/emojicon这样的库