こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Androidアプリでネット上の画像を表示

また、お世話になります
Androidアプリを勉強しながら作成しております
以前、ネット上にある画像をアプリに読込して表示する方法を聞いて、勉強しながら表示する事が出来ました。
しかし、たまに取り損ねる事がありこの回避方法を教えてください。

現在のソース
String url = "http://www.hogehoge.com/hoge.jpg";

try {
URL url = new URL(url);
InputStream input = url.openStream();
Bitmap bitmap = BitmapFactory.decodeStream(input);
Bitmap bitmap1 = Bitmap.createScaledBitmap(bitmap, 100, 75, true);
getimg1.setImageBitmap(bitmap1);
} catch (Exception ex) {
ex.printStackTrace();
} finally {
}

【知りたい事】
ネット上にある(必ずあるのが条件)画像を取り損ねる事があるので、その対応方法を知りたい。

【開発環境】
eclipse
galaxy S
Windows vista

スペルミス等がありましたら、ご了承ください。
宜しくお願します。

投稿日時 - 2011-03-30 20:19:52

QNo.6632529

すぐに回答ほしいです

質問者が選んだベストアンサー

こんな感じで動くと思います。

String urlStr = "http://www.hogehoge.com/hoge.jpg";
InputStream input = null;

// 画像取得に最大3回チャレンジ
for (int i = 0; i < 3; i++) {
try {
URL url = new URL(urlStr);
input = url.openStream();
Bitmap bitmap = BitmapFactory.decodeStream(input);
Bitmap bitmap1 = Bitmap.createScaledBitmap(bitmap, 100, 75, true);
getimg1.setImageBitmap(bitmap1);

break; // 画像取得できた場合はループを抜ける

} catch (FileNotFoundException e) {
// 画像が取得できないので100ミリ秒(0.1秒)してから再取得する
try {
Thread.sleep(100);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}

if (input == null) {
// ここに画像が取得できない場合の処理を書く
}

投稿日時 - 2011-03-31 20:39:52

お礼

tegraさんありがとうございますm(__)m
感謝感謝です。
さっそく帰宅したらやって見たいと思います。

本当にありがとうございます。

投稿日時 - 2011-04-01 18:49:40

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

はじめまして。
端末で動作させているのかわかりませんが、電波状況が悪くて取れないのでは?
もしくは相手側の通信状態が原因かもしれません。

対応としてはループ処理で何回か画像の取得にチャレンジする
のはどうでしょうか。
たとえば100ミリ秒ごとに3回チャレンジして、画像が取得できればOK。
ってな感じで。

投稿日時 - 2011-03-30 23:54:42

お礼

早々ありがとうございます。
ループ処理処理と数回チャレンジさせる方法がイマイチやり方が分かりません。泣
もしよろしければやり方教えてください。
また、参考になるサイトありましたら教えてください。

投稿日時 - 2011-03-31 02:33:06

あなたにオススメの質問