最近Webview需要显示html字符串,这个字符串是从别的网站用Python抓取过来的。需要干掉乱七八糟的样式,然后定义成自己的样式,图片自适应支持(宽度充满控件,高度自适应)、换行支持,字体大小、字体颜色、去掉背景等处理。
想法就是用正则干掉所有的style,然后逐一添加图片自适应支持、禁止复制onselectstart、整体加个自适应换行、字体大小和颜色。
具体处理代码:
/**
* 设置html文本 - data字符串
*
* @param hmtlData
* @.1.1 -支持了下Img适应屏幕宽度
*/
public void setHtml(String hmtlData) {
// || hmtlData.equals("")
if (null == hmtlData) {
return;
}
String support_img = hmtlData;
// 先把所有的style干掉 - 正则表达式
String regEx = " style=\"(.*?)\"";
Pattern p = pile(regEx);
Matcher m = p.matcher(support_img);
if (m.find()) {
support_img = m.replaceAll("");
}
support_img = support_img.replace("
// body加了就行了,这里就不用再加了
//support_img = support_img.replace("
support_img = "";
// 整体加个自适应换行、字体大小和颜色
support_img = "
";
// this是Webview控件哈,自行替换
this.loadDataWithBaseURL(null, support_img, "text/html", "utf-8", null);
}
搞定收工。。。
正则去除html行内样式 Android-富文本处理-html字符串去掉内部样式 统一添加body style 统一支持换行等...