片段有四个图像布局

时间:2013-04-17 11:48:59

标签: android android-fragments android-xml

我无法弄清楚我的布局应该是什么样的。我有一个片段。在它内部,我有scrollView(因为我希望支持两个orrientations),在ScrollView中我希望有四个均匀分布的图像(像这个http://numberexplosion.com/wp/wp-content/uploads/2012/04/square-4.gif)。但我只是想办法做到这一点,我尝试了相对,线性,tablelayouts,但无法得到这样的观点:/。

我目前的布局:

<?xml version="1.0" encoding="utf-8"?>
    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/scrollView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <TableLayout
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:gravity="center_vertical|center_horizontal" >

            <TableRow
                android:id="@+id/tableRow1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal" >

                <ImageView
                    android:id="@+id/imageView1"
                    android:layout_width="150dp"
                    android:layout_height="150dp" />

                <ImageView
                    android:id="@+id/ImageVieww2"
                    android:layout_width="150dp"
                    android:layout_height="150dp" />

            </TableRow>

            <TableRow
                android:id="@+id/tableRow2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal" >

                <ImageView
                    android:id="@+id/ImageVieww3"
                    android:layout_width="150dp"
                    android:layout_height="150dp" />

                <ImageView
                    android:id="@+id/ImageVieww4"
                    android:layout_width="150dp"
                    android:layout_height="150dp" />

            </TableRow>

            <TableRow
                android:id="@+id/tableRow3"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" >
            </TableRow>

        </TableLayout>

    </ScrollView>

这种布局看起来几乎和我希望的一样,但是图像尺寸只有150dp,在某些情况下并没有填满整个屏幕。我的imageView源不同,但我想imageViews来填充我的片段。我有什么想法吗?

2 个答案:

答案 0 :(得分:0)

一个相当不错的解决方案是使用LinearLayout包含2个LinearLayouts,每个Views包含2个layout_width。诀窍是对儿童使用layout_height / 0dp layout_weightLinearLayouts(2 Views和4 GridLayout)。

您可能还想尝试GridView(不是{{1}}),它可以从Android 4.0(http://developer.android.com/reference/android/widget/GridLayout.html)和2.1中的support-library-v7中获得。

答案 1 :(得分:0)

你可以这样做。我知道它的布局很重,但它会解决你的问题。我在horizontal Linear layouts中使用了两个Vertical Linear Layout. 我在horizontal linear layout weight 1中放了2个按钮。

Layout Vertical Layout Horizontal

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="horizontal" >

        <ImageView
            android:id="@+id/ImageView1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="5dp"
            android:layout_weight="1"
            android:scaleType="fitXY"
            android:src="@drawable/no_image" />

        <ImageView
            android:id="@+id/ImageView1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="5dp"
            android:layout_weight="1"
            android:scaleType="fitXY"
            android:src="@drawable/no_image" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="horizontal" >

        <ImageView
            android:id="@+id/ImageView1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="5dp"
            android:layout_weight="1"
            android:scaleType="fitXY"
            android:src="@drawable/no_image" />

        <ImageView
            android:id="@+id/ImageView1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="5dp"
            android:layout_weight="1"
            android:scaleType="fitXY"
            android:src="@drawable/no_image" />

    </LinearLayout>

</LinearLayout>