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

このコードを使用できます..

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 に答える
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 に答える