ロードするイメージを持つ各アイテムを持つ gridView を持っています。アダプターを使用して画像をレンダリングしました。描画可能なフォルダー内の画像を使用して作成されたリソース ID 配列を使用して、画像を gridView アイテムとして割り当てています。
問題は、gridView が 12 個の画像 (スクロールせずにビューに収まる) のみで表示されていることです。その配列には約 40 個の画像リソース ID があります。getView は 12 ~ 13 回しか呼び出されません。
グリッド ビューで 40 枚の画像すべてを表示する方法を教えてください。grid.xml にスクロールペインを明示的に追加する必要がありますか?
以下は grid.xml レイアウトです
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/wooden_background"
android:id="@+id/RootView">
<GridView
android:id="@+id/gridView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numColumns="3"
android:stretchMode="columnWidth"
android:padding="5dp"
android:verticalSpacing="5dp"
android:horizontalSpacing="5dp"
android:gravity="center"
android:maxWidth="150dip"
android:maxHeight="150dip" >
</GridView>
</LinearLayout>
以下は、アダプター内の getView 関数です
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View vi;
if (convertView == null){ // if it's not recycled, initialize some attributes
vi = inflater.inflate(R.layout.each_image,parent, false);
}
else{
vi=convertView;
}
/*imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(170,170));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);*/
System.out.println("Inside getView");
ImageView image = (ImageView)vi.findViewById(R.id.imageView);
image.setMaxHeight(150);
image.setMinimumHeight(150);
image.setScaleType(ImageView.ScaleType.FIT_XY );
image.setImageResource(imageIngredientsID[position]);
return vi;
}