android中的特殊网格布局

时间:2013-12-27 23:17:36

标签: android layout user-interface

我的Android应用程序中有4个大图像。

我想在下面显示它们。

enter image description here

这些图片应该在任何Android设备中具有相同的大小,从3“到10”和......

如何应用这些布局?

请注意,图片非常大,我想为此设置一个灵活的布局。

这是一个XAML等效版,可以在windows phone中正常工作

<Grid>
    <Grid.RowDefenitons>
         <RowDefeniton />
         <RowDefeniton />
    </Grid.RowDefenitons>
    <Grid.ColumnDefentions>
         <ColumnDefeniton />
         <ColumnDefeniton />
    </Grid.ColumnDefentions>
    <ImageBox Grid.Row="0" Grid.Column="0" />
    <ImageBox Grid.Row="0" Grid.Column="1" />
    <ImageBox Grid.Row="1" Grid.Column="0" />
    <ImageBox Grid.Row="1" Grid.Column="1" />
</Grid>

这是一个等效的HTML:

<table style="width: 100%;height: 100%;">
    <tbody>
        <tr>
            <td><img src="1.jpg" style="width: 100%;height: 100%;"></td>
            <td><img src="1.jpg" style="width: 100%;height: 100%;"></td>
        </tr>        
        <tr>         
            <td><img src="1.jpg" style="width: 100%;height: 100%;"></td>
            <td><img src="1.jpg" style="width: 100%;height: 100%;"></td>
        </tr>
    </tbody>
</table>

我在我的Android应用程序中尝试了很多样本​​,但是对我来说没有它们。

这是我尝试的最后一个结果:

<TableLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:stretchColumns="1">
        <TableRow>
            <FrameLayout
                android:layout_height="wrap_content"
                android:layout_width="0dp"
                android:layout_weight="1">
                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ManagedTransactionsIcon"
                    android:layout_gravity="center_horizontal"
                    android:layout_margin="10dp" />
            </FrameLayout>
            <FrameLayout
                android:layout_height="wrap_content"
                android:layout_width="0dp"
                android:layout_weight="1">
                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/UnManagedTransactionsIcon"
                    android:layout_gravity="center_horizontal"
                    android:layout_margin="10dp" />
            </FrameLayout>
        </TableRow>
        <TableRow>
            <FrameLayout
                android:layout_height="wrap_content"
                android:layout_width="0dp"
                android:layout_weight="1">
                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/AlarmsIcon"
                    android:layout_gravity="center_horizontal"
                    android:layout_margin="10dp" />
            </FrameLayout>
            <FrameLayout
                android:layout_height="wrap_content"
                android:layout_width="0dp"
                android:layout_weight="1">
                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ReportsIcon"
                    android:layout_gravity="center_horizontal"
                    android:layout_margin="10dp" />
            </FrameLayout>
        </TableRow>
    </TableLayout>

但它仅适用于仅在纵向模式下的10个“Android设备”。

提前致谢。

1 个答案:

答案 0 :(得分:0)

这是我尝试的最终结果,它在任何分辨率下都非常有效:

<LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1">
            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1">
                <ImageView
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:src="@drawable/ManagedTransactionsIcon"
                    android:layout_gravity="center"
                    android:layout_marginLeft="2dp"
                    android:layout_marginTop="2dp"
                    android:layout_marginRight="1dp"
                    android:layout_marginBottom="2dp" />
            </LinearLayout>
            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:minWidth="25px"
                android:minHeight="25px">
                <ImageView
                    android:src="@drawable/UnManagedTransactionsIcon"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_marginLeft="1dp"
                    android:layout_marginTop="2dp"
                    android:layout_marginRight="2dp"
                    android:layout_marginBottom="2dp" />
            </LinearLayout>
        </LinearLayout>
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1">
            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:minWidth="25px"
                android:minHeight="25px">
                <ImageView
                    android:src="@drawable/AlarmsIcon"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_marginLeft="2dp"
                    android:layout_marginTop="2dp"
                    android:layout_marginRight="1dp"
                    android:layout_marginBottom="2dp" />
            </LinearLayout>
            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:minWidth="25px"
                android:minHeight="25px">
                <ImageView
                    android:src="@drawable/ReportsIcon"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_marginLeft="1dp"
                    android:layout_marginTop="2dp"
                    android:layout_marginRight="2dp"
                    android:layout_marginBottom="2dp" />
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>