使用RelativeLayout对齐三个元素

时间:2014-02-20 11:11:38

标签: android

我正在尝试对齐三个元素,第一个在左边缘(Imageview),在中心,Textview为tittle,右边缘为Imageview。

这是代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    android:background="@color/fondo_main"
    android:orientation="vertical" >

    <RelativeLayout
        android:id="@+id/RelativeLayout01"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="5dp"
        android:layout_weight="1" >


        <ImageView
            android:id="@+id/buttonback"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:src="@drawable/back" />
        <TextView
            android:id="@+id/tittle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:text="Tittle"
        android:textColor="@color/azul_asde"
            android:src="@drawable/upload" />
        <ImageView
            android:id="@+id/buttonupload"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:src="@drawable/upload" />
    </RelativeLayout>
</LinearLayout>

如何将tittle对准中心?

4 个答案:

答案 0 :(得分:7)

把它放在Textview

 android:layout_centerHorizontal="true"

答案 1 :(得分:3)

试试这个

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/fondo_main"
    android:orientation="vertical" >

    <RelativeLayout
        android:id="@+id/RelativeLayout01"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="5dp"
        android:layout_weight="1" >

        <ImageView
            android:id="@+id/buttonback"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:src="@drawable/back" />

        <TextView
            android:id="@+id/tittle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/buttonback"
            android:layout_alignRight="@+id/buttonupload"
            android:gravity="center"
            android:src="@drawable/upload"
            android:text="Tittle"
            android:textColor="@color/azul_asde" />

        <ImageView
            android:id="@+id/buttonupload"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:src="@drawable/upload" />
    </RelativeLayout>

</LinearLayout>

答案 2 :(得分:2)

您可以使用toRightOftoLeftOf属性对齐它们。试试这个

<TextView
    android:id="@+id/tittle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:toRightOf="@id/buttonback"
    android:toLeftOf="@+id/buttonupload"
    android:singleLine="false"
    android:maxLines="**YOUR CHOCICE**"
    android:text="Tittle"
    android:textColor="@color/azul_asde"
    android:src="@drawable/upload" />

[编辑] 同时使用toRightOftoLeftOf可确保即使EditText中的文字过长,也会buttonupload开启android:layout_centerHorizontal="true"右侧不会移出屏幕

这是您无法使用 android:singleLine="false" *

实现的目标

[注意] 您可能还需要考虑android:maxLines和{{1}}属性。

希望它有所帮助。

答案 3 :(得分:1)

试试这个

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

    <RelativeLayout
        android:id="@+id/RelativeLayout01"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="5dp"
        android:layout_weight="1" >

        <ImageView
            android:id="@+id/buttonback"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_toLeftOf="@id/tittle"
            android:src="@drawable/ic_launcher" />

        <TextView
            android:id="@+id/tittle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:gravity="center"
            android:src="@drawable/ic_launcher"
            android:text="Tittle"
            android:textColor="#000000" />

        <ImageView
            android:id="@+id/buttonupload"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_toRightOf="@id/tittle"
            android:src="@drawable/ic_launcher" />
    </RelativeLayout>

</LinearLayout>