Html.fromHtml利用Textview显示html文本

项目中往往需要显示一段文本,如果对文本需要特定的效果,就要写自定义的span,这样的工作量会变得很大,目前android支持html格式的文本。提供了两个接口,下面我们就来看一下怎么使用。

1、Spanned android.text.Html.fromHtml(String source) //输入的参数为(html格式的文本)

目前android不支持全部的html的标签,目前只支持与文本显示和段落等标签,对于图片和其他的多媒体,还有一些自定义标签不能识别

String string = "1<br/>\r\n2<br/>\r\n33234";
Spanned result = Html.fromHtml(string);
textView.setText(result);

原字符串显示
原字符串显示

Html.fromHtml使用后显示
Html.fromHtml使用后显示

另外也可以在string.xml中使用,但是要用用

<string name="htmlString">1<br/>2<br/>33234</string>

MainActivity.java

textView.setText(R.string.htmlString);

效果

string.xml中直接使用效果

string.xml

    <string name="htmlString">
        <![CDATA[
        1<br/>2<br/>33234
        ]]>
    </string>

MainActivity.java

Spanned result = Html.fromHtml(getResources().getString(R.string.htmlString));
textView.setText(result);

效果

转义后效果

2.Spanned android.text.Html.fromHtml(String source,ImageGetter imageGetter,TagHandler tagHandler)

未完待续…

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
如果您使用`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>`标签的文字颜色设置为红色。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值