WebView 图片大小自适应问题

来源:互联网 发布:2007年网络歌曲 编辑:程序博客网 时间:2024/06/06 06:31

三星android 4.4 以下版本遇到 图片过大展示超过手机屏幕的问题:
问题出在img标签中有固定的width大小,导致展示过大。
解决方法1) :缺点是会把style 的其他属性也替换掉

     private String exchangeStyleValue(String htmlString) {        Document doc = Jsoup.parse(htmlString);        Elements elements = doc.getElementsByTag("a");        for (Element element : elements) {            Elements imgs = element.getElementsByTag("img");            if (imgs != null && imgs.size() > 0) {                Attributes attrs = element.attributes();                for (Attribute attr : attrs) {                    if (attr.getKey().equals("style")) {                        attr.setValue("max-width:100% width:auto");                    } else {                        continue;                    }                }                for (Element img : imgs) {                    Attributes attrs2 = img.attributes();                    for (Attribute attr : attrs2) {                        if (attr.getKey().equals("style")) {                            attr.setValue("max-width:100% width:auto");                        } else {                            continue;                        }                    }                }            }        }        return doc.toString();    }

解法2):

signWebView.setWebViewClient(new WebViewClient() {            @Override            public boolean shouldOverrideUrlLoading(WebView view, String url) {                return true;            }            @Override            public void onPageFinished(WebView view, String url) {                super.onPageFinished(view, url);                imgStyleChange();            }        });private void imgStyleChange(){        signWebView.loadUrl("Javascript:" +                "   var objs = document.getElementsByTagName('a'); " +                "   for(var i=0;i<objs.length;i++)  { " +                "       var a = objs[i]; " +                "       a.style.maxWidth = '100%'; " +                "       a.style.width = 'auto'; " +                "         var imgs = objs[i].getElementsByTagName('img'); " +                "         for(var i=0;i<imgs.length;i++) { " +                "           var img = imgs[i];" +                "           img.style.maxWidth = '100%'; " +                "           img.style.width = 'auto'; " +                "       } " +                "}");    }
0 0
原创粉丝点击