美文网首页 Android知识进阶(遥远的重头开始)
Android-富文本处理-html字符串去掉内部样式,统一添加

Android-富文本处理-html字符串去掉内部样式,统一添加

作者: MonkeyLei | 来源:发表于2020-02-01 15:26 被阅读0次

最近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);
    }

搞定收工。。。

相关文章

网友评论

    本文标题:Android-富文本处理-html字符串去掉内部样式,统一添加

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