图像无法在Android中下载

时间:2013-01-22 09:05:10

标签: android

我有一些代码正在运行,但现在不行,我无法弄清楚原因。我正在尝试从URL下载图像,但没有检索到任何内容。我有以下代码:

URL u;
u = new URL("https://sites.google.com/site/mymoneymobilesite/rugbynut/leagues/league%20six%20nations.png");
URLConnection ucon = u.openConnection();
InputStream is = ucon.getInputStream();
Bitmap tmp_bmp = BitmapFactory.decodeStream(is);

就像我说的,这是几个月前的工作,但我来更新其他一些代码,发现它已经不存在了。

有人可以帮忙吗?

更新: 我试过了代码:

InputStream iStream = (InputStream) u.getContent();
Drawable d = Drawable.createFromStream(iStream, "test");

但是d为空。我使用与上面相同的URL(图像是公开的),并且应用程序没有连接到互联网的问题,因为它正在管理下载其他数据。

还有什么想法?

3 个答案:

答案 0 :(得分:0)

  1. 您可能未在清单文件中授予互联网访问权限。

  2. 请注意,要从URL获取图像,请使用AsyncTask或其他线程,因为无法在主线程中执行提取操作。

  3. 尝试其他链接上的图片,但您尝试的链接无效。

答案 1 :(得分:0)

使用此代码

public static Drawable LoadImageFromWebOperations(String url) {
  try {
      InputStream is = (InputStream) new URL(url).getContent();
      Drawable d = Drawable.createFromStream(is, "src name");
      return d;
  } catch (Exception e) {
      return null;
  }
}

答案 2 :(得分:0)

您可以使用此代码..

public static Drawable ImageOperations(String url) {
    try {
        InputStream is = (InputStream) fetch(url);
        Drawable d = Drawable.createFromStream(is, "src");

        return d;
    } catch (MalformedURLException e) {
        return null;
    } catch (IOException e) {
        return null;
    }
}

public static Object fetch(String address) throws MalformedURLException,IOException {
    URL url = new URL(address);
    Object content = url.getContent();
    return content;
}

这对我来说很酷。我之前也遇到过这种错误,很难找到确切的错误。基本上,当互联网速度较慢或图像较大时,就会发生这种情况。但是这段代码每次都有效..