Android4.4以上webview自适应

       最近在做一个电商项目,用到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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • WebSettings用于管理WebView状态配置,当WebView第一次被创建时,WebView包含着一个默认...
    游戏开发小Y阅读 25,432评论 1 19
  • 基本用法 清单文件配置WebView <WebView android:id="@+id/wv_n...
    Goorwl阅读 821评论 1 1
  • 对于使用webview加载一个网页,使用它的loadurl()方法即可,如果在程序内要打开网页,难么就要自己创建一...
    2c2z0阅读 3,426评论 0 0
  • 前言:最近在无聊的复习着软件工程,这门课也够无聊的了,感觉一堆都是要背的概念,而我最讨厌背了!!!所以,哈哈,又开...
    庞贝船长阅读 3,091评论 5 4
  • 晚饭后,跑步打篮球,儿子有一周左右的时间没去坚持。感赏儿子今天有出去了,尽管出来很晚,但出去总比没出好。 因开学以...
    玫瑰铿锵阅读 180评论 0 0