Android WebView设置图片自适应屏幕宽度 及 加载本地图片

在Android开发中,WebView加载HTML时,图片宽高可能需要自适应屏幕。本文介绍了三种方法实现图片自适应:1. 使用WebViewClient加载url后通过JS设置图片宽度;2. 直接加载HTML字符串并替换img标签;3. 使用Jsoup解析HTML。同时,提到加载本地图片的挑战,可以考虑转换为Base64字符串给H5。
摘要由CSDN通过智能技术生成

在开发中,有时候我们需要加载html中的数据,当html中的各个元素宽高都已经设置好了的情况下,我们可以直接用WebView加载,但是也有时候html各个标签的宽高是不正常的,特别是图片。以下介绍WebView设置加载的网络图片自适应宽高的3种方法,以作记录.

方法一、WebView加载url
该方法使用js来设置,在Webview的setWebViewClient()方法中WebViewClient在加载完网页后执行一个JavaScript方法,这个JavaScript方法将所有网页中图片的宽度设置为屏幕显示宽度。

			@Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                String javascript = "javascript:function ResizeImages() {" +
                        "var myimg,oldwidth;" +
                        "var maxwidth = document.body.clientWidth;" +
                        "for(i=0;i <document.images.length;i++){" +
                        "myimg = document.images[i];" +
                        "if(myimg.width > maxwidth){" +
                        "oldwidth = myimg.width;" +
                        "myimg.width = maxwidth;" +
                        "}" +
                        "}" +
                        "}";
                String width = String.valueOf(ScreenUtils.widthPixels(mContext));
                view.loadUrl(javascript);
                view.loadUrl("javascript:ResizeImages();");
            }

方法二、WebView直接加载HTML字符串(使用java.lang.String类中的replace()方法)

//content为html的代码
String content ="<img src="xxx.com.xxx.jpg">"
content = content.replace("<img", "<img style="max-width:100%;height:auto");
webView.loadDataWithBaseURL(null, content, "text/html", "utf-8", null);

方法三、WebView直接加载HTML字符串(使用Jsoup)
Jsoup解析html字符串是非常方便的,他的中文版官网为Jsoup中文版,其使用方法这里面介绍的非常详细,就不多说了,我就直接吧代码粘贴出来

    /*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值