0

我有一些可以工作的代码,但现在不行,我不知道为什么。我正在尝试从 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(图像是公开的)并且应用程序连接到互联网没有问题,因为它正在管理下载其他数据。

还有什么想法吗?

4

3 回答 3

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

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

  3. 尝试其他链接上的图像可能您尝试的链接无效。

于 2013-01-22T09:08:35.833 回答
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;
  }
}
于 2013-01-22T09:09:04.507 回答
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;
}

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

于 2013-01-22T09:54:25.777 回答