fromHtml:JellyBean和KitKat(及以上)的不同行为

时间:2018-03-14 05:26:38

标签: android android-4.4-kitkat android-4.1-jelly-bean fromhtml

我使用fromHtmlTextView中显示格式化文本(粗体斜体等)。但是,我发现它在JellyBean(4.1.2)和KitKat(4.4.2)上的行为是不同的

这是代码:

    String myHtml = "<b>hello</b>&#128516;";
    Spanned spanned = Html.fromHtml(myHtml, null, null);

这里的html字符串有&#128516;,它是表情符号的unicode。现在在调用fromHtml之后,它在KitKat(及以上)上返回以下值:

spanned = hello

以下是Android Studio的截图:

enter image description here

这是预期的行为,因为我们可以在spanned中看到相应的表情符号。

但是在JellyBean上,同一个调用返回以下值:

spanned = hello�� 

这是截图:

enter image description here

这确实没有预料到并让我疯狂。我不知道自己做错了什么。如果有人有想法,请帮忙吗?

2 个答案:

答案 0 :(得分:0)

src中添加this个java文件,并在.ttf

中添加this字体assets dir文件

现在使用如下

String myHtml = "<b>hello</b>&#128516;";
Spanned spanned = AndroidEmoji.ensure(myHtml);

了解更多信息gitcode.

答案 1 :(得分:0)

令人惊讶的是,这个问题的根源在Html.toHtml我用来将TextView中的文本转换为html。我使用自定义toHtml并解决了这个问题。我使用了this回答中写的.toHtml。确实这是很好的解决方案。我想知道Android的原始Html.toHtml是如此蹩脚和有缺陷。