1

fromHtml用来在TextView. 但是,我发现它在 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 屏幕截图:

在此处输入图像描述

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

但在 JellyBean 上,相同的调用返回以下值:

spanned = hello�� 

这是屏幕截图:

在此处输入图像描述

这确实出乎意料,让我发疯。我不知道我做错了什么。如果有人有想法请你帮忙吗?

4

2 回答 2

0

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

于 2018-03-24T14:13:14.483 回答
0

在你的中添加这个java文件src并在其中添加这个字体.ttf文件assets dir

现在像下面这样使用

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

有关更多信息,请查看gitcode。

于 2018-03-14T05:35:34.520 回答