画像のグリッドビュー表示とその上にテキストビューを表示するAndroidアプリを開発しています。今まで、ドローアブルからの画像のグリッドビュー表示を行いました。配列リスト変数でjsonからテキスト値を取得しました。
画像のみを表示するために使用したコード:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_front_page);
GridView grid=(GridView)findViewById(R.id.maincatgrid);
grid.setAdapter(new ImageAdapter(this));
grid.setColumnWidth( 170 );
grid.setVerticalSpacing(20 );
grid.setStretchMode( GridView.STRETCH_COLUMN_WIDTH );
grid.setNumColumns( GridView.AUTO_FIT );
}
public class ImageAdapter extends BaseAdapter {
private Context mContext;
public ImageAdapter(Context c){
mContext = c;
}
public Integer[] mThumbIds = {
R.drawable.image1,
R.drawable.image2,
R.drawable.image3,
R.drawable.image4,
R.drawable.image5,
R.drawable.image6,
R.drawable.image7,
R.drawable.image8,
};
public int getCount() {
// TODO Auto-generated method stub
return mThumbIds.length;
}
public Object getItem(int position) {
// TODO Auto-generated method stub
return mThumbIds[position];
}
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View MyView = convertView;
// TODO Auto-generated method stub
ImageView imageView;
if (convertView == null) {
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(170, 150));
imageView.setAdjustViewBounds(false);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(mThumbIds[position]);
return imageView;
}
}
}
15 個の値を含む非同期タスクから textview 値を取得しています。mThumbIds から画像がない場合 (つまり、textvalues>images)、デフォルトの画像 R.drawable.no_image を配置する必要があります。これを達成する方法はありますか?前もって感謝します。