WebView--日常BUG:

来源:互联网 发布:java循环语句 编辑:程序博客网 时间:2024/06/07 22:53

WebView图片显示不全:

有时我们使用WebView加载html页面的时候会出现图片大于屏幕,需要左右滑动才能看到全部,这无疑是一个非常不好的用户体验,怎么能让图片刚好适配屏幕的宽度,用一下方法试了之后可行:

//支持JavaScriptWebSettings webSettings = tvBrief.getSettings();webSettings.setJavaScriptEnabled(true);//设置页面布局类型webSettings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); //设置WebViewClient监听tvBrief.setWebViewClient(new MyWebViewClient());private class MyWebViewClient extends WebViewClient {        @Override        public void onPageFinished(WebView view, String url) {               super.onPageFinished(view, url);            //  html加载完成之后,调用js的方法                     imgReset();        }        @Override        public boolean shouldOverrideUrlLoading(WebView view, String url) {            view.loadUrl(url);            return true;        }    }   private void imgReset() {        tvBrief.loadUrl("javascript:(function(){"                + "var objs = document.getElementsByTagName('img'); "                + "for(var i=0;i<objs.length;i++)  " + "{"                + "var img = objs[i];   "                + "    img.style.width = '100%';   "                 + "    img.style.height = 'auto';   "                + "}" + "})()");    }/**      * 使用正则表达式 把html标签中的style属性全部替换成""      */      private String replaceImgStyle(String html){          String reg = "style=\"([^\"]+)\"";          Pattern pattern = Pattern.compile(reg);          Matcher matcher = pattern.matcher(html);          return matcher.replaceAll("");      }  加载页面String html=replaceImgStyle(htmlJson)tvBrief.loadDataWithBaseURL(null,html, "text/html", "utf-8", null);

这里写图片描述
文化馆下面就是一个WebView可以看到图片刚好完整的出现