如何在android中的Textview中呈现表情符号?

时间:2016-03-04 06:25:33

标签: android chat render emoji

我正在开发一个聊天应用程序,我正在实现表情符号,但我在适配器中有一个问题如何在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是聊天消息,但在这里如何使用消息呈现表情符号。

请仔细阅读我的帖子并向我推荐一些解决方案。

1 个答案:

答案 0 :(得分:0)

您可以在TextView上设置范围,很可能要扩展DynamicDrawableSpan并将图像输入范围。如果你的目标是渲染iOS emojis而不是默认的android表情符号,你应该使用像https://github.com/instachat/emoji-libraryhttps://github.com/rockerhieu/emojicon这样的库