【问题标题】:Android - Show Local Images in WebView [duplicate]Android - 在 WebView 中显示本地图像 [重复]
【发布时间】:2014-12-29 15:27:40
【问题描述】:

我发现在早期的android API(KitKat及以上)中,本地图像(例如assest文件夹中的图片)无法在WebView中加载!我有一个 html 文件,其中包含显示图像的标签。

<img src="blacksmoke1.jpg">

我把 blacksmoke1.jpg 放在了 assest 文件夹中。但 WebView 中没有显示任何内容。

这是问题所在:https://code.google.com/p/android/issues/detail?id=63033

我该如何解决?有没有其他方法可以在 webview 中显示图片?或者是否有可以在我的应用中实现的自定义 WebView?

编辑: 这是我的资产文件夹:

【问题讨论】:

  • 请完整阅读问题!我知道如何在 WebView 中显示 html 文件... :|问题出在 KitKat WebView...它无法访问应用程序中的本地文件,例如图像...我正在寻找解决此问题的方法!

标签: java android webview


【解决方案1】:

尝试在您的资产目录中创建网页并创建显示图像的 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 很好地解释了创建原生页面或显示原生图像。

【讨论】:

  • 在早期的 API 中不显示本地图像...
  • @K2evil 那么不要尝试直接通过Android显示图片,尝试使用html页面利用webView渲染图片。
  • 我不明白如何将 html 文件移动到服务器!你能给我一个例子或说明吗?
  • @K2evil 你有网络服务器吗?您有网站或网络托管帐户吗?如果是这样,那么您可以将文件放在那里。如果没有,那么您可以通过说 Host Gator:hostgator.com 或放弃服务器的想法以便宜的价格获得一个。
【解决方案2】:

这是我从 assets 文件夹中加载 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 标签,从位于 assets 文件夹中的 data1 文件夹加载图像。为了能够从那里加载资源,我执行以下操作:

    WebView webView = (WebView) findViewById(R.id.webview);

    webView.loadDataWithBaseURL("file:///android_asset/", sb.toString(), "text/html", "utf-8", null);

希望对你有帮助

【讨论】:

  • 我的 assest 文件夹中有一个 html 文件,我无法在运行时构建它,因为它有很多文本...请查看我的编辑...
  • 这只是一个例子。您可以像这样加载您的 html 文件: webview.loadUrl("file:///android_asset/blacksmoke.html")
  • 好的...这是如何在 webview 中显示 html 文件!这不是我的问题!你看到这个链接了吗? code.google.com/p/android/issues/detail?id=63033
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-28
  • 2011-09-24
  • 1970-01-01
  • 2017-05-15
  • 1970-01-01
相关资源
最近更新 更多