解決できないような問題に直面しています。ユーザーに 2 つの異なる形式で表示したい画像が多数あります。1 つの形式は画面の幅全体にまたがる画像を表示する「リスト」形式で、もう 1 つの形式は 3 つの画像を含むグリッドを表示する「グリッド」形式です。行。これを行うために、「グリッド」と「リスト」の間の切り替えを維持する追加情報のヘッダーがあります。これをすべて ListView に入れ、ユーザーがボタン (ListView のヘッダーに含まれる) で切り替えることができるようにし、アダプターを変更して ListView に入れるようにしました。「リスト」はうまく機能しますが、「グリッド」に切り替えると、右側にたくさんのスペースがある画像が 1 つだけ表示されるように見えます。これにはGridLayoutの方が適していましたが、要件を考えると、そうしませんでした。ListView が機能しない理由がわかりません。レイアウトは次のとおりです。
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/event_detail_gridview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="3"
android:orientation="horizontal" >
<ImageButton
android:id="@+id/grid_image_1"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
android:padding="5dp"
android:background="@android:color/transparent"
android:onClick="showPictureDetail" />
<ImageButton
android:id="@+id/grid_image_2"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
android:padding="5dp"
android:background="@android:color/transparent"
android:onClick="showPictureDetail" />
<ImageButton
android:id="@+id/grid_image_3"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
android:padding="5dp"
android:background="@android:color/transparent"
android:onClick="showPictureDetail" />
</LinearLayout>
以下に示すように、ユニバーサルイメージローダーを使用しています
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context.getApplicationContext())
.threadPriority(Thread.NORM_PRIORITY - 2)
.memoryCache(new WeakMemoryCache())
.enableLogging()
.build();
imageLoader.init(config);
options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.placeholder)
.imageScaleType(ImageScaleType.IN_SAMPLE_INT)
.cacheInMemory()
.cacheOnDisc()
.displayer(new SimpleBitmapDisplayer())
.build();
imageLoader.displayImage(url, imageView, options);
画像ローダーが全画面幅で写真をロードしているのがわかりますが、 android:weightSum="3" と android:layout_weight="1" がより大きな画像を処理すると考えられます。これについて何か考えはありますか?