1

我遇到了一个我似乎无法解决的问题。我有许多图片,我想以两种不同的格式向用户展示,一种格式“列表”,显示跨越整个屏幕宽度的图片,另一种格式“网格”,显示一个网格,其中包含 3 张图片排。为此,我有一个附加信息的标题,它将持续在“网格”和“列表”之间切换。我把这一切都放在一个 ListView 中,并允许用户使用一个按钮(包含在 ListView 的标题中)进行切换,并简单地将适配器更改为放入 ListView。“列表”效果很好,但是当我切换到“网格”时,似乎只显示了一个图像,右侧有一堆空间。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" 会处理更大的图片。对此有什么想法吗?

4

0 回答 0