Android - 将4个图像放入2x2的网格中

时间:2017-10-17 23:18:29

标签: android

我的XML中有4个图像,我想在我的RelativeLayout中以2x2的网格显示它们,我希望同一行中的图像同等地占据宽度。我尝试使用wrap_content,但它不起作用,图像没有显示,我想避免设置固定的宽度/高度(如下面的代码),因为屏幕尺寸不同。

<RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:focusable="false"
            android:orientation="vertical">
            <com.facebook.drawee.view.SimpleDraweeView
                android:id="@+id/picture"
                android:layout_height="140dp"
                android:layout_width="140dp"
                fresco:viewAspectRatio="1"
                fresco:fadeDuration="300"
                fresco:actualImageScaleType="focusCrop"
                fresco:failureImage="@android:color/transparent"
                fresco:placeholderImage="@android:color/transparent"
                fresco:progressBarAutoRotateInterval="1000"
                fresco:progressBarImage="@drawable/loading_circle"
                fresco:progressBarImageScaleType="centerInside"/>
            <com.facebook.drawee.view.SimpleDraweeView
                android:id="@+id/picture2"
                android:layout_height="140dp"
                android:layout_width="140dp"
                android:layout_toRightOf="@id/picture"
                fresco:viewAspectRatio="1"
                fresco:fadeDuration="300"
                fresco:actualImageScaleType="focusCrop"
                fresco:failureImage="@android:color/transparent"
                fresco:placeholderImage="@android:color/transparent"
                fresco:progressBarAutoRotateInterval="1000"
                fresco:progressBarImage="@drawable/loading_circle"
                fresco:progressBarImageScaleType="centerInside"/>
            <com.facebook.drawee.view.SimpleDraweeView
                android:id="@+id/picture3"
                android:layout_height="140dp"
                android:layout_width="140dp"
                android:layout_below="@id/picture"
                fresco:viewAspectRatio="1"
                fresco:fadeDuration="300"
                fresco:actualImageScaleType="focusCrop"
                fresco:failureImage="@android:color/transparent"
                fresco:placeholderImage="@android:color/transparent"
                fresco:progressBarAutoRotateInterval="1000"
                fresco:progressBarImage="@drawable/loading_circle"
                fresco:progressBarImageScaleType="centerInside"/>
            <com.facebook.drawee.view.SimpleDraweeView
                android:id="@+id/picture4"
                android:layout_height="140dp"
                android:layout_width="140dp"
                android:layout_toRightOf="@id/picture3"
                android:layout_below="@id/picture2"
                fresco:viewAspectRatio="1"
                fresco:fadeDuration="300"
                fresco:actualImageScaleType="focusCrop"
                fresco:failureImage="@android:color/transparent"
                fresco:placeholderImage="@android:color/transparent"
                fresco:progressBarAutoRotateInterval="1000"
                fresco:progressBarImage="@drawable/loading_circle"
                fresco:progressBarImageScaleType="centerInside"/>
</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

我设法通过使用两个LinearLayouts来实现这一点:

<RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:focusable="false">
            <LinearLayout
                android:id="@+id/btnLL"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
            <com.facebook.drawee.view.SimpleDraweeView
                android:id="@+id/picture"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                fresco:viewAspectRatio="1"
                fresco:fadeDuration="300"
                fresco:actualImageScaleType="focusCrop"
                fresco:failureImage="@android:color/transparent"
                fresco:placeholderImage="@android:color/transparent"
                fresco:progressBarAutoRotateInterval="1000"
                fresco:progressBarImage="@drawable/loading_circle"
                fresco:progressBarImageScaleType="centerInside"/>
            <com.facebook.drawee.view.SimpleDraweeView
                android:id="@+id/picture2"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_toRightOf="@id/picture"
                fresco:viewAspectRatio="1"
                fresco:fadeDuration="300"
                fresco:actualImageScaleType="focusCrop"
                fresco:failureImage="@android:color/transparent"
                fresco:placeholderImage="@android:color/transparent"
                fresco:progressBarAutoRotateInterval="1000"
                fresco:progressBarImage="@drawable/loading_circle"
                fresco:progressBarImageScaleType="centerInside"/>
            </LinearLayout>
            <LinearLayout
                android:id="@+id/btnLL1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/btnLL">
            <com.facebook.drawee.view.SimpleDraweeView
                android:id="@+id/picture3"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_below="@id/picture"
                fresco:viewAspectRatio="1"
                fresco:fadeDuration="300"
                fresco:actualImageScaleType="focusCrop"
                fresco:failureImage="@android:color/transparent"
                fresco:placeholderImage="@android:color/transparent"
                fresco:progressBarAutoRotateInterval="1000"
                fresco:progressBarImage="@drawable/loading_circle"
                fresco:progressBarImageScaleType="centerInside"/>
            <com.facebook.drawee.view.SimpleDraweeView
                android:id="@+id/picture4"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_toRightOf="@id/picture3"
                android:layout_below="@id/picture2"
                fresco:viewAspectRatio="1"
                fresco:fadeDuration="300"
                fresco:actualImageScaleType="focusCrop"
                fresco:failureImage="@android:color/transparent"
                fresco:placeholderImage="@android:color/transparent"
                fresco:progressBarAutoRotateInterval="1000"
                fresco:progressBarImage="@drawable/loading_circle"
                fresco:progressBarImageScaleType="centerInside"/>
            </LinearLayout>
            </RelativeLayout>