最近Webview需要显示html字符串,这个字符串是从别的网站用Python抓取过来的。需要干掉乱七八糟的样式,然后定义成自己的样式,图片自适应支持(宽度充满控件,高度自适应)、换行支持,字体大小、字体颜色、去掉背景等处理。
想法就是用正则干掉所有的style,然后逐一添加图片自适应支持、禁止复制onselectstart、整体加个自适应换行、字体大小和颜色。
然后测试了下,没啥大问题。。关于正则MonkeyLei:Java-正则表达式去掉html字符串内部的所有样式style="***"(转载记录)
具体处理代码:
/**
* 设置html文本 - data字符串
*
* @param hmtlData
* @2019.1.1 -支持了下Img适应屏幕宽度
*/
public void setHtml(String hmtlData) {
// || hmtlData.equals("")
if (null == hmtlData) {
return;
}
String support_img = hmtlData;
// 先把所有的style干掉 - 正则表达式
String regEx = " style=\"(.*?)\"";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(support_img);
if (m.find()) {
support_img = m.replaceAll("");
}
support_img = support_img.replace("<img", "<img style=\"max-width:100%;height:auto\"");
// body加了就行了,这里就不用再加了
//support_img = support_img.replace("<a", "<a style=\"word-break:break-all\"");
support_img = "<a onselectstart = \"return false\">" + support_img + "</a>";
// 整体加个自适应换行、字体大小和颜色
support_img = "<body style=\"word-break:break-all; font-size:15px; color:#333333;\"" + support_img + "</body>";
// this是Webview控件哈,自行替换
this.loadDataWithBaseURL(null, support_img, "text/html", "utf-8", null);
}
搞定收工。。。
网友评论