Android中显示Html内容(总结)
效果图如下:

首先,Android中显示Html内容,有3中方式:(目前我用到的有这3种)
1、可以利用Android原生的Html.fromHtml(str, imageGetter, tagHandler)来进行显示。(不过,我这边用了,即使加了页面加载动画,还是觉得非常慢,有大量图片,会导致OOM;如果图片不多的话,可以考虑)
2、利用第三方插件HtmlTextView。
GitHub地址:https://github.com/PrivacyApps/html-textview
图片加载很顺畅,使用方法也非常简单,不过,有两个注意事项:
(1)其中,HtmlHttpImageGetter有3个构造函数,可以根据自己的情况选择。
(2)加载大量图片的时候,会导致OOM内存溢出。针对于这个情况,HtmlHttpImageGetter有一个压缩图片的方法可以调用,可以进去查看它的公共方法。(不过,我这边显示的图片过大,每张1M左右,并且一下子有几十张,即使设置了压缩图片,还是会导致OOM问题,目前还没解决,有大神知道咋弄的,拜托指点一下,非常感谢!)
对了,这个第三方插件的基本用法,点击上面的连接,进去一看就知道了,很简单。
3、第三种,是我没办法的情况下想的:把html标签里的内容利用正则表达式拿出来,其中,文本内容用一个TextView代替,<img>标签图片用一个ImageView代替,其他相关的标签自行选择替换。说白了,就是创建一个个的TextView以及ImageView填充到布局里(LinearLayout之类的)。要说明的是:其中图片显示用Glide来实现。目前我这边测试的情况还是可以的,加载的速度非常快,也没因内存问题导致APP崩溃。
/**
* 格式化html标签
* @param content
* @return
*/
public static String addSpecialCharToString(String content) {
content = content.replace("<", "##<");
content = content.replace(">", ">##");
content = content.replace("####", "##");
return content;
}
/**
* 正则获取img标签中的图片的URL
* @param imgHtml
* @return
*/
public static String regGetImageUrl(String imgHtml) {
Pattern pat = Pattern.compile("(.src=)(.+?)(style=.)");
Matcher m = pat.matcher(imgHtml);
if(m.find()){
return m.group(2);
}
return null;
}
目前,我用到的是以上3种,大家根据自己的情况选择。另外,第二种那个,有哪个大神知道咋弄的,拜托帮忙指点一下,再次感谢!
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)