Android Jsoup的使用(WebView 加载html片段)

Android WebView 加载html片段,会存在css和js缺失问题,导致文字和图片的大小显示出现问题:

1、文字显示太小

2、图片显示太大,超出屏幕宽度

3、通过补全html,添加<style>对字体css和图片css进行设置</style>,会存在文字重叠问题

为了解决上面的问题,需要对html代码判断进行解析并修改,所以就使用到 Jsoup。

//针对<p><span><img>标签进行处理
Document doc_Dis = Jsoup.parse("html片段字符串");//获取Document对象
Elements ele_Img = doc_Dis.getElementsByTag("img");//获取所有<img>标签元素
Elements ele_P = doc_Dis.getElementsByTag("p");//获取所有<p>标签元素
Elements ele_Span = doc_Dis.getElementsByTag("span");//获取所有<span>标签元素
if (ele_Img.size() != 0){
    for (Element e_Img : ele_Img) {
        e_Img.attr("style", "width:100%;height:auto;border-radius:3vw;");//替换<img>中style值
    }
}
if (ele_P.size() != 0) {
    for (Element e_P : ele_P) {
         e_P.attr("style", "font-size:5vw;");
    }
}
if (ele_Span.size() != 0) {
    for (Element e_Span : ele_Span) {
        String styleStr = e_Span.attr("style");//获取<span>中style值
        String[] strings = styleStr.split(";");
        for (int i=0;i<strings.length;i++) {
            if (strings[i].contains("font-size")) {
                strings[i] = "font-size:5vw";
                break;
            }
        }
        e_Span.attr("style", StringUtil.join(strings,";"));
   }
}
String newHtml = doc_Dis.toString();

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值