关于富文本标签页的内容产生的乱码问题以及Html.fromHtml不能换行的问题。

1.产生背景

后台发布文章和其他内容时,采用的是富文本标签的形式,产生的字符串中携带有html的标签信息,在移动端进行展示时出现的乱码问题。

2.解决方案
采用 android中一个类 HTML,调用方法:

Html.fromHtml(shareContent)

此时在TextView中显示文字的时候可以将富文本标签中的乱码解决掉,但是又出现了一个新的问题,显示的时候该换行的地方没有换行,遇到\n的时候没有换行。

3.解决Html.fromHtml()内容不能换行

采用的思路是将\n转换为Html能够识别的标签进行换行,比如

于是:(br代表换行的意思)

//将字符串中的\n用<br>替换掉
private String parseContent(String content) {
if(StringUtil.isNotEmpty(content)){
content = content.replace("\n","<br>");
}
return content;
}

只要将\n替换为
解析的时候出现就会换行。

4.整体来说,第一步,先替换\n为 ‘br’,然后通过Html.from(content);来解决乱码的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您使用`Html.fromHtml()`方法设置富文本时,样式没有生效,那么您需要检查以下几个方面: 1. 首先,确保您的富文本字符串中包含的样式属性是支持的。例如,`<font>`标签只支持以下属性:`color`、`face`、`size`。 2. 确保您的文本视图中已启用样式属性。在 XML 中,您可以使用`android:textAppearance`属性或`android:textStyle`属性来设置样式。如果您在 Java 代码中创建 TextView,您也可以使用`setTextAppearance()`或`setTypeface()`方法来设置样式。 3. 如果您的文本视图中已启用样式属性,但样式仍未生效,则可能是由于您的设备版本过低所致。在 Android 7.0 及更高版本中,您可以使用`Html.fromHtml()`方法设置富文本,并且样式属性会生效。但在较早的 Android 版本中,您需要使用`Html.fromHtml()`方法的第二个参数来指定一个`Html.TagHandler`对象,以便将样式属性应用于文本视图中。下面是一个示例: ```java if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { textView.setText(Html.fromHtml(htmlString, Html.FROM_HTML_MODE_COMPACT)); } else { textView.setText(Html.fromHtml(htmlString, null, new MyTagHandler())); } private class MyTagHandler implements Html.TagHandler { @Override public void handleTag(boolean opening, String tag, Editable output, XMLReader xmlReader) { if (tag.equalsIgnoreCase("font") && !opening) { output.setSpan(new ForegroundColorSpan(Color.RED), output.length() - 1, output.length(), 0); } } } ``` 在上面的代码中,`MyTagHandler`类实现了`Html.TagHandler`接口,并重写了`handleTag()`方法来处理`<font>`标签。在这个示例中,它将文本视图中的所有`<font>`标签的文字颜色设置为红色。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值