Android - 相对布局将项目水平对齐,以便它们之间始终具有相同的空间

时间:2013-11-24 22:51:44

标签: android android-layout relativelayout

我的相对布局上每4张图片有2行,如下图所示:
enter image description here

我差不多已经按照它的要求了但是当应用程序运行时,底部和顶部的左右两个图像都粘在框架的边缘,但是中间的图像有更宽的间距,可能它们粘在角落里的那个。

我希望距离布局边框10dip的4幅图像留在那里但是我想要的4幅内部图像在它们之间以及角落之间具有相同的空间。

我的布局文件:

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

    <ImageView
        android:id="@+id/logo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="15dp"
        android:src="@drawable/userl" />

    <TextView
        android:id="@+id/address"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/logo"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="10dp"
        android:layout_toRightOf="@+id/logo"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#000222" />

    <TextView
        android:id="@+id/city"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/address"
        android:layout_alignRight="@+id/address"
        android:layout_below="@+id/address"
        android:text="Small Text"
        android:textAppearance="?android:attr/textAppearanceSmall" />

    <ImageView
        android:id="@+id/gsm"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/city"
        android:layout_marginTop="14dp"
        android:layout_toLeftOf="@+id/address"
        android:src="@drawable/userl" />

    <ImageView
        android:id="@+id/diners"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/city"
        android:layout_alignTop="@+id/master"
        android:src="@drawable/userl" />

    <ImageView
        android:id="@+id/master"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/visa"
        android:layout_marginRight="54dp"
        android:layout_toLeftOf="@+id/diners"
        android:src="@drawable/userl" />

    <ImageView
        android:id="@+id/deposit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/gsm"
        android:layout_below="@+id/gsm"
        android:layout_marginTop="18dp"
        android:src="@drawable/userl" />

    <ImageView
        android:id="@+id/transfer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/visa"
        android:layout_alignTop="@+id/deposit"
        android:src="@drawable/userl" />

    <ImageView
        android:id="@+id/history"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/master"
        android:layout_alignTop="@+id/transfer"
        android:src="@drawable/userl" />

    <ImageView
        android:id="@+id/upn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/history"
        android:layout_toRightOf="@+id/master"
        android:src="@drawable/userl" />

    <ImageView
        android:id="@+id/visa"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/deposit"
        android:layout_alignLeft="@+id/city"
        android:layout_marginLeft="21dp"
        android:src="@drawable/userl" />

</RelativeLayout>

然而,我移动这些内部的东西总是与外部的一样。

1 个答案:

答案 0 :(得分:2)

您是否尝试将LinearLayoutandroid:weightSum="4"android:layout_width="0dip" + android:layout_weight="1"添加到ImageView,如下所示:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:background="#FFFFFF"
   android:orientation="vertical" >

    <ImageView
        android:id="@+id/logo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="15dp"
        android:src="@drawable/userl" />

    <TextView
        android:id="@+id/address"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/logo"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="10dp"
        android:layout_toRightOf="@+id/logo"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#000222" />

    <TextView
        android:id="@+id/city"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/address"
        android:layout_alignRight="@+id/address"
        android:layout_below="@+id/address"
        android:text="Small Text"
        android:textAppearance="?android:attr/textAppearanceSmall" />

        // First row (under @id/logo)

        <LinearLayout
            android:id="@+id/row1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="14dp"
            android:weightSum="4"
            android:layout_below="@id/logo" >

            <ImageView
                android:id="@+id/gsm"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:src="@drawable/userl" />

            <ImageView
                android:id="@+id/diners"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:src="@drawable/userl" />

            <ImageView
                android:id="@+id/master"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:src="@drawable/userl" />

            <ImageView
                android:id="@+id/deposit"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:src="@drawable/userl" />

    </LinearLayout>

        // Second row (under @id/row1)

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="18dp"
        android:weightSum="4"
        android:layout_below="@id/row1" >

            <ImageView
                android:id="@+id/transfer"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:src="@drawable/userl" />

            <ImageView
                android:id="@+id/history"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:src="@drawable/userl" />

            <ImageView
                android:id="@+id/upn"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:src="@drawable/userl" />

            <ImageView
                android:id="@+id/visa"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:src="@drawable/userl" />

    </LinearLayout>

</RelativeLayout>  

希望这有帮助。