如何在中心对齐我的徽标,无论是相对布局还是左右参考?

时间:2014-01-03 09:56:43

标签: android layout alignment

如何在中心对齐我的徽标而不在相对布局中给出右侧或左侧参考?这可能吗?

徽标ID是“windowtitle”,当前对齐方式如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#e7ebee"
    android:gravity="center"
    android:orientation="vertical"
    android:weightSum="1" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="452dp"
        android:layout_weight="1"
        android:gravity="center"
        android:orientation="vertical" >

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#0a2436"
            android:gravity="center"
            android:orientation="vertical" >

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

            <ImageView
                android:id="@+id/inboxheader"
                android:layout_width="2dip"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginRight="5dp"
                android:layout_toRightOf="@+id/back"
                android:background="#85929B"
                android:paddingBottom="15dip"
                android:paddingTop="15dip" />

            <ImageView
                android:id="@+id/windowtitle"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:layout_toRightOf="@+id/inboxheader"
                android:background="#0a2436"
                android:gravity="center_horizontal|center_vertical"
                android:paddingBottom="10dip"
                android:paddingTop="10dip"
                android:src="@drawable/logo" >
            </ImageView>
        </RelativeLayout>

        <ListView
            android:id="@android:id/list"
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:divider="@android:color/darker_gray"
            android:dividerHeight="1dip"
            android:drawSelectorOnTop="false"
            android:focusable="false"
            android:paddingTop="0dip" />

        <!-- android:divider="@color/listDivider" -->
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center" >

        <TableLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_centerInParent="true"
            android:gravity="bottom" >

            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:background="#092435"
                android:gravity="center_horizontal" >

                <Button
                    android:id="@+id/btnManualLookup"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:background="#4982AE"
                    android:gravity="center"
                    android:padding="15dip"
                    android:text="Activity"
                    android:textColor="#ffffff" />

                <View
                    android:layout_width="1dp"
                    android:layout_height="match_parent"
                    android:layout_marginBottom="6dip"
                    android:layout_marginTop="6dip"
                    android:background="#85929B" />

                <Button
                    android:id="@+id/supportbutton"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:background="#092435"
                    android:gravity="center"
                    android:padding="15dip"
                    android:text="Support"
                    android:textColor="#ffffff" />

                <View
                    android:layout_width="1dp"
                    android:layout_height="match_parent"
                    android:layout_marginBottom="6dip"
                    android:layout_marginTop="6dip"
                    android:background="#85929B" />

                <Button
                    android:id="@+id/messagebutton"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:background="#092435"
                    android:gravity="center"
                    android:padding="15dip"
                    android:text="Messages"
                    android:textColor="#ffffff" />
            </TableRow>
        </TableLayout>
    </LinearLayout>

</LinearLayout>

2 个答案:

答案 0 :(得分:2)

我已经解决了你的问题。我是StackOverflow的新用户。这很简单,我复制了你的代码并对你说的问题发表评论。否则你的代码是一样的,不用担心我也使用了你用过的相同id。所以,它也不妨碍你的代码。

现在完整布局的求解代码是:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#e7ebee"
    android:gravity="center"
    android:orientation="vertical"
    android:weightSum="1" >
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="452dp"
        android:layout_weight="1"
        android:gravity="center"
        android:orientation="vertical" >
        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="40dp"
            android:background="#0a2436"
            >
          <!--<ImageView
                android:id="@+id/back"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_centerVertical="true"
                android:src="@drawable/back" />
            <ImageView
                android:id="@+id/inboxheader"
                android:layout_width="2dip"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginRight="5dp"
                android:layout_toRightOf="@+id/back"
                android:background="#85929B"
                android:paddingBottom="15dip"
                android:paddingTop="15dip" />
            <ImageView
                android:id="@+id/windowtitle"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:layout_toRightOf="@+id/inboxheader"
                android:background="#0a2436"
                android:gravity="center_horizontal|center_vertical"
                android:paddingBottom="10dip"
                android:paddingTop="10dip"
                android:src="@drawable/logo" >
            </ImageView>-->
            <ImageView
                android:id="@+id/windowtitle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_centerVertical="true"
                android:src="@drawable/logo" 
                android:contentDescription="@null"/>
            <ImageView
                android:id="@+id/back"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_centerVertical="true"
                android:src="@drawable/back" />            
            <ImageView
                android:id="@+id/inboxheader"
                android:layout_width="2dip"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginRight="5dp"
                android:layout_toRightOf="@+id/back"
                android:background="#85929B"
                android:paddingBottom="15dip"
                android:paddingTop="15dip" /> 
        </RelativeLayout>
        <ListView
            android:id="@android:id/list"
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:divider="@android:color/darker_gray"
            android:dividerHeight="1dip"
            android:drawSelectorOnTop="false"
            android:focusable="false"
            android:paddingTop="0dip" />
        <!-- android:divider="@color/listDivider" -->
    </LinearLayout>
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center" >
        <TableLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_centerInParent="true"
            android:gravity="bottom" >
            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:background="#092435"
                android:gravity="center_horizontal" >
                <Button
                    android:id="@+id/btnManualLookup"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:background="#4982AE"
                    android:gravity="center"
                    android:padding="15dip"
                    android:text="Activity"
                    android:textColor="#ffffff" />
                <View
                    android:layout_width="1dp"
                    android:layout_height="match_parent"
                    android:layout_marginBottom="6dip"
                    android:layout_marginTop="6dip"
                    android:background="#85929B" />
                <Button
                    android:id="@+id/supportbutton"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:background="#092435"
                    android:gravity="center"
                    android:padding="15dip"
                    android:text="Support"
                    android:textColor="#ffffff" />
                <View
                    android:layout_width="1dp"
                    android:layout_height="match_parent"
                    android:layout_marginBottom="6dip"
                    android:layout_marginTop="6dip"
                    android:background="#85929B" />
                <Button
                    android:id="@+id/messagebutton"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:background="#092435"
                    android:gravity="center"
                    android:padding="15dip"
                    android:text="Messages"
                    android:textColor="#ffffff" />
            </TableRow>
        </TableLayout>
    </LinearLayout>
</LinearLayout>

您将此XML布局复制并粘贴到项目中并享受。如果我的回答对您有帮助,请支持此答案。

享受代码。

答案 1 :(得分:1)

我可能会RelativeLayout成为LinearLayout,并为每个View提供一个weight。您可能需要稍微使用weight来获得您想要的内容,但它应该可以正常工作。像

这样的东西
<LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#0a2436"
        android:gravity="center"  // I don't think this is needed 
        android:orientation="horizontal" >  

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

        <ImageView
            android:id="@+id/inboxheader"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight=".5"
            android:layout_centerVertical="true"
            android:background="#85929B"
            android:paddingBottom="15dip"
            android:paddingTop="15dip" />

        <ImageView
            android:id="@+id/windowtitle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="4"
            android:background="#0a2436"
            android:gravity="center_horizontal|center_vertical"
            android:paddingBottom="10dip"
            android:paddingTop="10dip"
            android:src="@drawable/logo" >
        </ImageView>
    </LinearLayout>

我还没有对此进行过测试,但您可以尝试一下,看看它是否能满足您的需求。正如我所说,你可能需要稍微使用layout_weight,但这可能会让你接近你想要的。