在 Android 中显示表情符号
我的 IM 应用程序必须支持表情符号。它们是 GIF 并具有文本表示形式,如果用户选择其中之一,则在输入框中使用它们。但我想在发送后将它们显示为图像。目前,我的自定义数组适配器在一行的 TextView 中显示发送的消息。
根据文本表示的出现动态显示图像的正确方法是什么?我是否必须搜索表情符号文本,如果找到,请从布局中删除 TextView(relativeLayout 最适合?)并添加一个带有 IM 开头的 TextView、一个带有表情符号的 ImageView 和另一个 TextView。如果同时发送更多表情符号,可能会很混乱。
有没有更简单、更符合逻辑的方法?
My IM app has to support emoticons. They are GIFs and have textual representations, which are used in the input box if the user selects one of them. But I'd like to display them as images after they have been sent.Currently my custom array adapter displays the sent message in a TextView of a row.
What is the proper method to display images dynamically based on the occurrence of their textual representation? Do I have to search for emoticon texts, and if one found, remove the TextView from the layout (relativeLayout fits most?) and add a TextView with the beginning of the IM, an ImageView with the emoticon and another TextView. If more emoticons sent simultaneously it can be messy.
Is there an easier and more logical way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我认为构建
Spannable
会更有用。实际上,此代码基于本机
Html
类的源代码。编辑:更新版本具有显着的速度提升。
I think it would be more useful to build
Spannable
.Actualy this code based on sources from native
Html
class.Edit: Updated version has dramatic speed improvement.
我会尝试使用正则表达式将每个表情符号的所有出现位置替换为
标记。然后,将该 HTML 转换为
SpannedString
通过Html.fromHtml()
。该SpannedString
可以在TextView
上的setText()
调用中使用。I would try using a regular expression to replace all occurrences of each emoticon with an
<img>
tag. Then, convert that HTML into aSpannedString
viaHtml.fromHtml()
. ThatSpannedString
can be used in asetText()
call onTextView
.