我使用fromHtml
在TextView
中显示格式化文本(粗体斜体等)。但是,我发现它在JellyBean(4.1.2)和KitKat(4.4.2)上的行为是不同的
这是代码:
String myHtml = "<b>hello</b>😄";
Spanned spanned = Html.fromHtml(myHtml, null, null);
这里的html字符串有😄
,它是表情符号的unicode。现在在调用fromHtml
之后,它在KitKat(及以上)上返回以下值:
spanned = hello
以下是Android Studio的截图:
这是预期的行为,因为我们可以在spanned
中看到相应的表情符号。
但是在JellyBean上,同一个调用返回以下值:
spanned = hello��
这是截图:
这确实没有预料到并让我疯狂。我不知道自己做错了什么。如果有人有想法,请帮忙吗?
答案 0 :(得分:0)
在src
中添加this个java文件,并在.ttf
assets dir
文件
现在使用如下
String myHtml = "<b>hello</b>😄";
Spanned spanned = AndroidEmoji.ensure(myHtml);
了解更多信息gitcode.
答案 1 :(得分:0)
令人惊讶的是,这个问题的根源在Html.toHtml
我用来将TextView
中的文本转换为html。我使用自定义toHtml
并解决了这个问题。我使用了this回答中写的.toHtml
。确实这是很好的解决方案。我想知道Android的原始Html.toHtml
是如此蹩脚和有缺陷。