Android之界面Android

Android4.4以上webview自适应

2016-06-16  本文已影响4576人  我姓连

       最近在做一个电商项目,用到webview来显示商品的详情(富文本类型),测试的时候选择了一部系统4.1的手机,当时的做法如下:

WebSettingswb=webView.getSettings();

wb.setJavaScriptEnabled(true);

//设置自适应

wb.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL.SINGLE_COLUMN);

wb.setDefaultTextEncodingName("UTF-8");

wb.setAppCacheEnabled(true);

wb.setCacheMode(WebSettings.LOAD_DEFAULT);

holder.mWbBrief.loadDataWithBaseURL(null,content,"text/html","utf-8",null);

       在Android4.1系统手机上运行是正常的,图片自适应屏幕完美,但是后来在4.4以上的手机测试发现,发现图片不会自适应,经过查找资料发现是由于Android在4.4以后浏览器内核变化引起的。解决办法如下:

mWebview.getSettings().setDefaultTextEncodingName("utf-8");// 避免中文乱码

mWebview.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);

WebSettingssettings=mWebview.getSettings();

settings.setJavaScriptEnabled(true);

settings.setNeedInitialFocus(false);

settings.setSupportZoom(true);

settings.setLoadWithOverviewMode(true);//适应屏幕

settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);

settings.setLoadsImagesAutomatically(true);//自动加载图片

settings.setCacheMode(WebSettings.LOAD_DEFAULT

|WebSettings.LOAD_CACHE_ELSE_NETWORK);

Documentdoc_Dis=Jsoup.parse(content);

Elementsele_Img=doc_Dis.getElementsByTag("img");

if(ele_Img.size() !=0) {

    for(Elemente_Img:ele_Img) {

        e_Img.attr("width","100%");

        //一定要设置auto 不要控制其高度,让其跟随宽度变化情况调整

        e_Img.attr("height","auto"); 

        }

}

StringnewHtmlContent=doc_Dis.toString();

mWebview.loadDataWithBaseURL(null,newHtmlContent,"text/html","utf-8",null);

经过测试,完美的解决了图片自适应的问题。

PS:这种处理方法需要引用 jsoup

上一篇下一篇

猜你喜欢

热点阅读