安卓如何将布局居中对齐

13

我想制作一个布局,将LOGO和文本对齐居中,位于ActionBar和底部布局之间。 像这张图片一样。

我尝试着实现,但结果不正确。它将LOGO的布局置于屏幕中心。效果类似于这张图片

有人知道哪里出了错误吗? 我的代码:

<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">

//MainLayout
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="text" >

//LOGO Layout
<RelativeLayout
    android:id="@+id/relativeLayout0"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:gravity="center_vertical|center_horizontal|center" >

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="@dimen/mainlogo_height"
    android:src="@drawable/gerb_big" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/imageView1"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="17dp"
    android:gravity="center"
    android:text="text"
    android:textColor="#900000"
    android:textSize="@dimen/OA_size" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/imageView1"
    android:layout_centerHorizontal="true"
    android:gravity="center"
    android:text="text"
    android:textColor="#900000"
    android:textSize="@dimen/NU_size" />

</RelativeLayout>

//Bottom Layout
<RelativeLayout
    android:id="@+id/relativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerHorizontal="true"
    android:layout_centerInParent="false"
    android:layout_centerVertical="true"
    android:gravity="bottom|center_horizontal|center" >

    <ImageButton
        android:id="@+id/home"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:background="#ffffff"
        android:onClick="home_Click"
        android:scaleType="fitXY"
        android:src="@drawable/home" />

    <ImageButton
        android:id="@+id/news"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:layout_toRightOf="@+id/home"
        android:background="#ffffff"
        android:onClick="news_Click"
        android:scaleType="fitXY"
        android:src="@drawable/database" />

    <ImageButton
        android:id="@+id/anons"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:layout_toRightOf="@+id/news"
        android:background="#ffffff"
        android:onClick="annons_Click"
        android:scaleType="fitXY"
        android:src="@drawable/calendar" />

    <ImageButton
        android:id="@+id/faculty"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:layout_toRightOf="@+id/anons"
        android:background="#ffffff"
        android:onClick="faculty_Click"
        android:scaleType="fitXY"
        android:src="@drawable/category" />

</RelativeLayout>



</RelativeLayout>
</android.support.v4.widget.DrawerLayout>
3个回答

15
创建一个LinearLayout作为根布局的子布局,包裹所有其他布局,然后更改。
<RelativeLayout
android:id="@+id/relativeLayout0"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:gravity="center" >

<RelativeLayout
android:id="@+id/relativeLayout0"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:gravity="center_vertical|center_horizontal|center" >

或者在您的 LOGO 布局中添加android:layout_above="@+id/relativeLayout1"


1
android:gravity="center_vertical|center_horizontal|center" 必须写成: android:gravity="center" - letroll

1
这是我的代码和布局。希望这是你需要的。 :-)
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<RelativeLayout
    android:id="@+id/relativeLayout1"
    android:layout_width="250dp"
    android:layout_height="250dp"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:background="@drawable/square_empty" >

    <RelativeLayout
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:background="@drawable/square_empty" >

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_below="@+id/textView1"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="14dp"
            android:text="TextView" />

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="14dp"
            android:src="@drawable/ic_launcher" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/imageView1"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="22dp"
            android:text="TextView" />
    </RelativeLayout>
</RelativeLayout>

<ImageButton
    android:id="@+id/imageButton1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:src="@drawable/ic_launcher" />

<ImageButton
    android:id="@+id/imageButton2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/imageButton1"
    android:layout_toRightOf="@+id/imageButton1"
    android:src="@drawable/ic_launcher" />

<ImageButton
    android:id="@+id/imageButton3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/imageButton2"
    android:layout_toRightOf="@+id/imageButton2"
    android:src="@drawable/ic_launcher" />

<ImageButton
    android:id="@+id/imageButton4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/imageButton3"
    android:layout_toRightOf="@+id/imageButton3"
    android:src="@drawable/ic_launcher" />

这里是快照:

enter image description here


0

尝试在您的标志布局中添加android:layout_above=@id/relativeLayout1


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接