2013-01-16 42 views
1

我想設計一個登錄屏幕。內容應該是水平和垂直中心。到目前爲止,我已經創造了這個:居中對齊登錄屏幕

enter image description here

目前我已經給marginTop我頂元素即圖標。但我認爲這不是一個正確的方法。我希望用戶名字段位於屏幕的垂直中心。這會將整個內容移動到屏幕中間。

這是到目前爲止我的佈局代碼:

<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" 
    tools:context=".LoginActivity" 
    android:background="#d1d6df"> 

    <ImageView 
     android:id="@+id/imgIcon" 
     android:src="@drawable/ic_launcher" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:contentDescription="Icon" 
     android:layout_marginBottom="20dp" 
     android:layout_marginTop="120dp" 
     android:layout_centerHorizontal="true"/> 

    <EditText 
     android:id="@+id/txtUsername" 
     android:hint="Username" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_below="@+id/imgIcon" 
     android:ems="10" 
     android:inputType="text"> 

     <requestFocus /> 
    </EditText> 

    <EditText 
     android:id="@+id/txtPassword" 
     android:hint="@string/passwordHint" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_below="@+id/txtUsername" 
     android:ems="10" 
     android:inputType="textPassword"> 
    </EditText> 

    <Button 
     android:text="@string/loginButtonText" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_below="@+id/txtPassword" 
     /> 

</RelativeLayout> 

而且我想在登錄按鈕,從它的上部兄弟得到寬度,即密碼字段。那可能嗎?

回答

2
  1. 取出marginTop,並在你的relativeLayout
  2. 添加android:layout_alignLeft="@+id/txtPassword"android:layout_alignRight="@+id/txtPassword"你的按鈕

希望添加android:gravity="center"這將幫助你:)

+0

哇..這樣一個快速和完美應對..我很感激..謝謝 –

+0

@AdilMalik然後,我可以建議你接受了答案: p謝謝;) – AMerle

1

使用此代碼

我檢查它看起來像在圖像中顯示。

enter image description here

XML代碼:

<?xml version="1.0" encoding="utf-8"?> 
<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" 
    tools:context=".LoginActivity" 
    android:gravity="center" 
    android:background="#d1d6df"> 

    <ImageView 
     android:id="@+id/imgIcon" 
     android:src="@drawable/ic_launcher" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:contentDescription="Icon" 
     android:layout_marginBottom="20dp" 

     android:layout_centerHorizontal="true"/> 

    <EditText 
     android:id="@+id/txtUsername" 
     android:hint="Username" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_below="@+id/imgIcon" 
     android:layout_centerVertical="true" 
     android:ems="10" 
     android:inputType="text"> 

     <requestFocus /> 
    </EditText> 

    <EditText 
     android:id="@+id/txtPassword" 
     android:hint="passwordHint" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_below="@+id/txtUsername" 
     android:ems="10" 
     android:inputType="textPassword"> 
    </EditText> 

    <Button 
     android:text="@string/loginButtonText" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_below="@+id/txtPassword" 
     android:layout_alignLeft="@+id/txtPassword" 
     android:layout_alignRight="@+id/txtPassword" 
     /> 

</RelativeLayout> 
+0

我感謝您的幫助。 CFlex在你之前發佈了一秒鐘。我只能給你1+ :-)感謝你的幫助 –