Android ImageViewにウェブ上の画像表示

Android開発しているとAndroid開発ネタばかりに偏りがちです・・・
が、仕方ないっス。
今日のAndroidネタは・・・

Androidでウェブ上の画像を表示する必要があり
ImageViewを使用して
ImageViewのメソッド setImageURI でURI指定すればいいのかな・・・と思い

[java]


ImageView iv = (ImageView) findViewById(R.id.imageview);
Uri.Builder ub = new Uri.Builder();
ub.scheme("http");
ub.authority("~ドメイン~");
ub.path("images/image.jpg");
iv.setImageURI(ub.build());


[/java]

と記述したが・・・全然表示されない・・・

調べたところ、setImageURI ではうまくいかないという記事を発見。(下記URL)

iRSSの日記|ImageViewにhttp経由の画像を表示する方法

記事にもあるように Drawable を生成して
ImageView の setImageDrawable(Drawable drawable) にセットしてあげる必要があるらしい。

で・・・こんなふうにしました。

[java]



InputStream is = (InputStream) this.fetch(ub.build().toString());
Drawable drawable = Drawable.createFromStream(is, "");
is.close();



[/java]
Android SDK 逆引きハンドブック を参考にしました。
※Exceptionの処理は適宜入れてください。

こんな感じでDrawableを生成したら・・・

表示されました!!

※ImageViewあたりのソース(最終的)
[java]


ImageView iv = (ImageView) findViewById(R.id.imageview);
Uri.Builder ub = new Uri.Builder();
ub.scheme("http");
ub.authority("~ドメイン~");
ub.path("images/image.jpg");
InputStream is = (InputStream) this.fetch(ub.build().toString());
Drawable drawable = Drawable.createFromStream(is, "");
is.close();
iv.setImageDrawable(drawable);


[/java]

2011年6月20日