我想用一些图片在我的webview中设置一些html内容。 我已经在互联网上阅读我必须使用loadDataWithBaseUrl做这样的事情,因为我需要连接图像文件夹(basUrl)按顺序。使用webView的loadDataWithBaseURL不加载SD卡中的图片
我的html内容很好地加载,我甚至可以完美地运行javascripts,但由于某种原因我的图像无法加载。
某处我读过存在一定的安全理由,这就是为什么我不能加载图片来自SD卡的WebView有的说,它可以通过loadDataWithBaseUrl轻松完成,所以我真的不知道哪一个是真的。
这里是我的方法我试过了,也许有一些错误,所以不要粗鲁:
我来到这里我的html文件:
mnt/sdcard/com.mypackage.myproject/3/3.html
我的图片在这里:
mnt/sdcard/com.mypackage.myproject/3/images/Cover.png
这是我的内容loading:
myWebView.loadDataWithBaseURL("file:///mnt/sdcard/com.mypackage.myproject/3", myHtml, "text/html", "utf-8", "");
在我的html代码:
<img src="images/Cover.png" alt="Cover.png" height="820"/>
所以你看我给的baseUrl,以及由于某种原因的WebView不能加载我的图片。
正如许多说,这可能是一个解决办法:
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setBuiltInZoomControls(true);
String base = Environment.getExternalStorageDirectory().getAbsolutePath().toString();
String imagePath = "file:/"+ base + "/test.jpg";
String html = "<html><head></head><body><img src=\""+ imagePath + "\"></body></html>";
mWebView.loadData(html, "text/html","utf-8");
但是,我有700个不同的HTML文件,有很多图像许多不同的地方......所以我不能修改HTML代码。
有没有办法将图像文件夹链接到我的html文件,以正确使用它们作为baseUrl?
你看http://stackoverflow.com/questions/3069822/is-it-possible-to-display-image-with-loaddatawithbaseurl-method-in-android后? – user370305 2012-08-01 07:16:32
是的,但这个问题与SD卡无关。 – 2012-08-01 07:17:25
[在webview中加载保存在SD卡中的图像]的可能的重复(http://stackoverflow.com/questions/5051364/load-the-image-saved-in-sdcard-in-webview) – Praveenkumar 2012-08-01 07:18:09