Android - 在WebView中显示本地图像

时间:2014-12-29 15:27:41

标签: java android webview

我发现在早期的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文件夹:

enter image description here

2 个答案:

答案 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);

希望有所帮助