1

ロードするイメージを持つ各アイテムを持つ 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;
}
4

2 に答える 2

0

gridviewが取得するアイテムの数は、アダプターのgetCount()メソッドに完全に依存しますが、何が返されますか?12?

于 2012-12-17T18:06:41.927 に答える
0

ScrollViewレイアウトに追加してみてください:

<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent">

 <LinearLayout
    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>
</ScrollView>
于 2012-12-17T18:03:19.140 に答える