我发现在早期的android(KitKat和abover)API中,本地图像(例如assest文件夹中的图片)无法在WebView中加载!我有一个html文件,其中包含用于显示图像的标记。
<img src="blacksmoke1.jpg">
我把blacksmoke1.jpg放在assest文件夹中。但WebView中没有显示任何内容。
这就是问题所在:https://code.google.com/p/android/issues/detail?id=63033
我该如何解决?是否有另一种在webview中显示图片的方法?或者我是否可以在我的应用程序中实现自定义WebView?
编辑: 这是我的assest文件夹:
答案 0 :(得分:3)
尝试在资源目录中创建网页,并创建显示图像的HTML页面。然后使用以下方法调用网页:
webview.loadUrl("file:///android_asset/blacksmoke.html");
或者,根据您链接中的一个帖子,将html文件移动到服务器并使用此代码:
loadDataWithBaseUrl("content://<your contentProvider>/blacksmoke.html", ...);
blacksmoke.html中的代码可以是:
<!DOCTYPE html>
<!-- Perhaps some JQuery mobile for more functionality and control over which images get displayed and why etc -->
<body>
<div><img src="image/blacksmoke1.jpg"></div>
</body>
</html>
Here是创建本机页面或显示原生图像的一个很好的解释。
答案 1 :(得分:0)
这是我从资产文件夹中加载webview中的本地资源的方法:
StringBuilder sb = new StringBuilder();
if (notification.get_id().equals("53be76c3d6eac5f54a546176")){
sb.append("<html xmlns=\"http://www.w3.org/1999/xhtml\"> <head> <title>For.... <img src=\"data1/images/forum1.jpg\" alt=\"\" title=\"\" id=\"wows1_0\"/> </body> </html>");
这是我要加载的html,如果你注意到有一个img标签,则从data1文件夹中加载一个放在assets文件夹中的图像。为了能够从那里加载资源,我执行以下操作:
WebView webView = (WebView) findViewById(R.id.webview);
webView.loadDataWithBaseURL("file:///android_asset/", sb.toString(), "text/html", "utf-8", null);
希望有所帮助