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]