【问题标题】:loadDataWithBaseURL does not load images which are part of html pageloadDataWithBaseURL 不加载属于 html 页面的图像
【发布时间】:2012-06-22 21:37:55
【问题描述】:

我与这个问题斗争了很长时间,在谷歌和 SO 周围挖掘,但仍然没有运气。最后,我在这里寻求您的帮助,请建议或帮助。

我对以下源代码的问题是它只显示图像不显示的字符串内容,而是显示白色矩形或有时带有问号的蓝色图像。

问:如何显示图片?

这是我的代码:

private void openURL() {

    DefaultHttpClient client = new HttpsRequest(getApplicationContext());
    HttpGet get = new HttpGet(getUrlField().getText().toString());
    // Execute the GET call and obtain the response
    HttpResponse getResponse;
    try {
        getResponse = client.execute(get);
        HttpEntity responseEntity = getResponse.getEntity();

        String content = EntityUtils.toString(responseEntity);
        getWebView().loadDataWithBaseURL(null, content, "text/html", "utf-8",
                null);

    } catch (ClientProtocolException e) {
        WSLog.e(THIS_FILE, "HTTP Error.");
        e.printStackTrace();
    } catch (IOException e) {
        WSLog.e(THIS_FILE, "Url Load Error.");
        e.printStackTrace();
    }
}

webView 输出:

【问题讨论】:

  • 您必须在loadDataWithBaseURL 中放置null 中的第一个getUrlField().getText().toString()
  • 感谢您的回复,但没有解决。我仍然看到相同的输出。感谢您的建议。
  • 您知道存储此页面图片的网址吗?您必须将该网址作为第一个参数放在loadDataWithBaseURL
  • 我可以得到这张图片的 url,但是这个页面有不止一张图片(如何处理多张图片?)如果我对图片 url 进行硬编码,那么我将如何管理页面上的未来修改例如更改图像名称或添加新图像等。应该有一些动态的方式来捕获这些图像并适当地显示它们。
  • 如果图片 url 看起来像 http://mysite.com/image1.jpghttp://mysite.com/image2.jpg 那么这个图片的基本 url 是 http://mysite.com/

标签: java android image http webview


【解决方案1】:

在 Vasarat 的帮助下,我的一些修改帮助我回答了这个问题。我已将以下代码行修改为

getWebView().loadDataWithBaseURL("http://mywebSite.com/parent_dir_to_iamges/", content, "text/html", "UTF-8","about:blank");

这个修改给了我预期的完美输出。

请让 cmets 休息一下以了解有关该问题的详细信息。

注意:我在基本 url 中使用了 http,而不是 https.....如果我可以使用 https,请告诉我。 webview.Loadurl() 如果 API 级别为 10 或更高,则带有 https url 可以正常工作,但它显示 API 级别 8 的空白页面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 2016-07-26
    • 2022-01-02
    相关资源
    最近更新 更多