ImageButton在Android应用程序中的相对布局问题

时间:2011-07-07 11:04:29

标签: android relativelayout

在我的应用中,我想在页面底部放置5个图像按钮。在5个按钮中,我想要两个按钮位于屏幕的左右角,一个按钮恰好位于屏幕的中央。其他两个按钮必须放在这些按钮之间,它们之间必须有相等的空间。我希望这对所有设备都是通用的。

以下是我的布局:

<RelativeLayout  android:id="@+id/RelativeLayout01" android:layout_width="fill_parent"  
                 xmlns:android="http://schemas.android.com/apk/res/android"  
                 android:layout_height="wrap_content">    

    <RelativeLayout android:background="#ffffff" android:layout_width="fill_parent" android:layout_alignParentBottom="true" android:id="@+id/relativeLayout1" android:layout_height="wrap_content">
            <ImageButton android:layout_alignParentLeft="true" android:id="@+id/widget32" android:layout_width="wrap_content" android:background="@drawable/back" android:layout_height="wrap_content">
            </ImageButton>

            <ImageButton android:layout_toRightOf="@+id/widget32" android:id="@+id/widget33" android:layout_width="wrap_content" android:background="@drawable/thumbsup" android:layout_height="wrap_content">
            </ImageButton>

            <ImageButton android:layout_centerInParent="true"android:layout_toRightOf="@+id/widget33" android:id="@+id/flipme" android:layout_width="wrap_content" android:background="@drawable/flip" android:layout_height="wrap_content">
            </ImageButton>

            <ImageButton android:layout_toRightOf="@+id/flipme" android:id="@+id/widget35" android:layout_width="wrap_content" android:background="@drawable/thumbsdown" android:layout_height="wrap_content">
            </ImageButton>

            <ImageButton android:layout_alignParentRight="true" android:id="@+id/widget36" android:layout_width="wrap_content" android:background="@drawable/forward" android:layout_height="wrap_content">
            </ImageButton>
    </RelativeLayout>  

   </RelativeLayout>

我想按顺序设置所有这些图片,请帮助我。

现在我遇到了一个新问题。我尝试在我的1.5和2.1版本的设备中运行此代码。 在2.1中,布局工作正常,但在1.5版设备中,按钮处于锯齿形顺序。为什么会这样?请帮帮我。

我无法将其更改为任何其他布局,因为它会影响我的其余代码。所以请给我一个相对布局的解决方案。

2 个答案:

答案 0 :(得分:2)

您可以使用TableLayout

获得相同的内容

示例

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TableRow>

        <ImageView
            android:id="@+id/j_elective_02"
            android:layout_width="wrap_content"
            android:layout_weight="1"
            android:src="@drawable/aruba"
            />
            <ImageView
            android:id="@+id/j_elective_01"
            android:layout_width="wrap_content"
            android:layout_weight="1"
            android:src="@drawable/aruba"/>

        <ImageView
            android:id="@+id/j_elective_02"
            android:layout_width="wrap_content"
            android:layout_weight="1"
            android:src="@drawable/aruba"
            />
            <ImageView
            android:id="@+id/j_elective_01"
            android:layout_width="wrap_content"
            android:layout_weight="1"
            android:src="@drawable/aruba"/>

        <ImageView
            android:id="@+id/j_elective_02"
            android:layout_width="wrap_content"
            android:layout_weight="1"
            android:src="@drawable/aruba"
            />
    </TableRow>

</TableLayout>

答案 1 :(得分:0)

不要将按钮放在相对布局中,而是将按钮放在表格布局中......就像这样...

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"  
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"         
         android:background="@drawable/bottom_bar"
         android:stretchColumns="*">        
        <TableRow>          
        <Button
            android:id="@+id/ImageButton1 "
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ImageButton1 ">
        </Button>           

        <Button
            android:id="@+id/ImageButton2 "
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ImageButton2 ">
        </Button>

        <Button
            android:id="@+id/ImageButton3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ImageButton3"
            >
        </Button>

        <Button
            android:id="@+id/ImageButton4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ImageButton4"
            >
        </Button>
        <Button
            android:id="@+id/ImageButton5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ImageButton5"
            >
        </Button>
        </TableRow>
</TableLayout>  

使用android:stretchColumns="*"中的TableLayout以相等的间隔对齐所有列。