android TextView 顯示 html table 標簽

首先 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 自己處理標簽

但是為了兼容低版本,我們還不能使用這個方法。所以只能自己解析轉(zhuǎn)換,可以用正則匹配把一些不支持的 Tag 轉(zhuǎn)為支持的 Tag,或轉(zhuǎn)為原生控件添加到 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));
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容