美文网首页
android TextView 显示 html table 标

android TextView 显示 html table 标

作者: lesliefang | 来源:发表于2017-02-09 15:12 被阅读830次

首先 TextView 是不支持 HTML 标签和样式的,只支持一些固定的标签和样式

之所以不使用 webview 是因为 webview 太重了,而我有好多个 TextView 后台返回的都是简单的 HTML

最好让后台同事只返回 TextView 支持的标签,毕竟 TextView 不是 WebView, TexView 只支持简单的固定标签

android7.0( api level 24 ) 有一个方法可以自己处理标签

public static Spanned fromHtml(String source, int flags, ImageGetter imageGetter,
            TagHandler tagHandler)

可通过 ImageGetterTagHandler 自己处理标签

但是为了兼容低版本,我们还不能使用这个方法。所以只能自己解析转换,可以用正则匹配把一些不支持的 Tag 转为支持的 Tag,或转为原生控件添加到 View 中。

String s = "<table><tr><td>col1</td><td>col2</td></tr><tr><td>col3</td><td>col4</td></tr></table>";
s = s.replaceAll("<table>", "");
s = s.replaceAll("</table>", "");
s = s.replaceAll("<tr>", "");
s = s.replaceAll("</tr>", "<br/>");
s = s.replaceAll("<td>", "   ");
s = s.replaceAll("</td>", "   ");
textView.setText(Html.fromHtml(s));

相关文章

网友评论

      本文标题:android TextView 显示 html table 标

      本文链接:https://www.haomeiwen.com/subject/rpgiittx.html