アイデアは、写真を表示するか、何も定義されていない場合はそれを象徴する小さなアイコンを表示することです。
レイアウトで次の ImageView を定義しました。
<ImageView
android:id="@+id/imgPic"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:contentDescription="@+string/strImgPic"
android:paddingRight="10dip"
android:paddingTop="10dip"
android:saveEnabled="false"
android:src="@drawable/pic_icon" />
そのため、ImageView は「アイコン」PNG で事前に初期化されています。
それをロードするコード:
try {
imgURL = vinfo.getString("mainpic_url");
if (imgURL.length() > 1) {
imgURL = getString(R.string.urlPicsFull) + imgURL;
ImageView imgPic = (ImageView) findViewById(R.id.imgPic);
ImageDownloader img = new ImageDownloader();
img.download(imgURL, imgPic);
}
} catch (..) {
(..)
ImageDownloader() は基本的に、画像を非同期的に取得する以外に何もしません。ただし、問題は、画像がない場合 ( imgURL.length()==0 )、アイコンがレイアウトの空の正方形の中央に非常に大きな「境界線」で表示されることです。
画像を親ビューの幅に縮小(または拡大)したいのですが、アイコンはそのまま表示します(幅と高さ約90ディップ)。
それを実現する方法について何か提案はありますか?