如何在Android中的同一行上放置三个imageview按钮

时间:2014-02-23 05:03:04

标签: android xml xml-layout

我有三个 imageViews 我想将所有这些ImageView设置为一行。我已粘贴下面的当前xml代码。

    

    <RelativeLayout
        android:id="@+id/myFragement"
        android:layout_width="wrap_content"
        android:layout_height="306dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="44dp"
        android:layout_weight="1.77"
        android:orientation="horizontal" >
    </RelativeLayout>

     <ImageView
         android:id="@+id/login_button"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_alignParentLeft="true"
         android:layout_alignParentTop="true"
         android:src="@drawable/login_non_click" />

    <ImageView
        android:id="@+id/comapre_now_button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:src="@drawable/compare_now_non_click_state" />

    <ImageView
        android:id="@+id/search_button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/comapre_now_button"
        android:src="@drawable/search_non_click" />

</RelativeLayout>

我解散后。发布我的应用程序的图像我认为这是有用的 After editing i have posted my App's image i think this is helpful

编辑后,我发布了我的应用程序的所有Xml代码,我认为这对所有人都有帮助。

<RelativeLayout
    android:id="@+id/myFragement"
    android:layout_width="wrap_content"
    android:layout_height="306dp"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="44dp"
    android:layout_weight="1.77"
    android:orientation="horizontal" >

</RelativeLayout>

 <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:orientation="horizontal"
        android:weightSum="3" >
     <ImageView
             android:id="@+id/login_button"
                  android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"

             android:src="@drawable/login_non_click" />

        <ImageView
            android:id="@+id/comapre_now_button"
             android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
            android:src="@drawable/compare_now_non_click_state" />

        <ImageView
            android:id="@+id/search_button"
              android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
            android:src="@drawable/search_non_click" />

    </LinearLayout>

2 个答案:

答案 0 :(得分:11)

如下所示,将ImageView放入内部LinearLayout,水平orientation

     <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:orientation="horizontal"
            android:weightSum="3" >
         <ImageView
                android:id="@+id/login_button"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:src="@drawable/login_non_click" />
         <ImageView
                android:id="@+id/comapre_now_button"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:src="@drawable/compare_now_non_click_state" />
         <ImageView
                android:id="@+id/search_button"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:src="@drawable/search_non_click" />   
        </LinearLayout>

答案 1 :(得分:4)

fida给出的答案应该提供你想要的(或接近它)。假设您希望它们占据屏幕的1/3。否则,您可以消除weight属性并在View之间使用保证金,或在每个属性之间使用空View,并提供适当的weight

你没有在水平布局中获取它们的原因是因为你对第一个android:layout_width="match_parent"ImageView所以我猜测它占据了整个宽度。它们应该是android:layout_width="wrap_content"。另外,对于您的上一个,您android:layout_below="@+id/comapre_now_button"明显会将View放在id之下。

假设您希望在中心,您可能需要android:layout_centerHorizontal="true"android:layout_toRightOf="@id/someId"android:layout_toLeftOf="id/someId"

此外,不是问题,但RelativeLayout没有orientationweight属性。