HTMLだとimgタグのsrcにその画像のパスを書いてやればブラウザであとは勝手にやってくれる。Androidでもそんな感じでWeb上の画像の表示をできると思っていたが、そんなでもなかった。
これは、調べればすぐ分かるが、ソース内で画像の中身を読んでDrawableオブジェクトをcreateFromStreamしてやる。ImageViewにはそのDrawableオブジェクトをsetしてやる。
mImage = (ImageView) view.findViewById(R.id.item_img);
String image = item.getSmallImage().toString(); // これはItemクラスのgetter。単に画像のURL。
InputStream is = (InputStream) new URL(image).getContent();
Drawable d = Drawable.createFromStream(is, "");
is.close();
mImage.setImageDrawable(d);
URLのnewでMalformedURLExceptionをgetContentでIOExceptionを投げるので、try catchもしておく。ImageViewは至ってシンプル。
<ImageView android:id="@+id/item_img"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />