2013-01-04 84 views
6

我想爲我的登錄屏幕設計一個佈局,我嘗試了以下代碼。使用一些硬編碼值,我得到了一些屏幕尺寸的中心綠色佈局中心。我知道使用硬編碼值不會在不同的屏幕尺寸上工作。我嘗試過很多東西。請給我提供最好的方式 enter image description hereAndroid:爲所有屏幕尺寸對齊LinearLayout中心

<?xml version="1.0" encoding="utf-8"?> 

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="@drawable/background" > 

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <RelativeLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/register_header" 
     android:layout_width="fill_parent" 
     android:layout_height="50dp" 
     android:orientation="horizontal" > 

     <ImageView 
      android:id="@+id/title_image" 
      android:layout_width="wrap_content" 
      android:layout_height="40dp" 
      android:layout_centerHorizontal="true" 
      android:layout_centerVertical="true" 
      android:layout_marginBottom="5dp" 
      android:layout_marginTop="5dp" 
      android:gravity="center" 
      android:src="@drawable/logo_blue" /> 


    </RelativeLayout> 

    <LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_marginLeft="150dp" 
     android:layout_marginRight="150dp" 
     android:layout_marginTop="50dp" 
     android:layout_marginBottom="50dp" 
     android:orientation="vertical" > 

     <LinearLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/UserInfo" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/WelcomeInfo" 
      android:gravity="center_vertical" 
      android:orientation="horizontal" > 

      <TextView 
       android:id="@+id/user" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="User Name" 
       android:textColor="#000000" 
       android:textSize="10pt" 
       android:textStyle="bold" /> 

      <EditText 
       android:id="@+id/username" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:hint="Enter username" 
       android:singleLine="true" 
       android:textColor="#000000" > 
      </EditText> 
     </LinearLayout> 

     <LinearLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/PassInfo" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/UserInfo" 
      android:orientation="horizontal" > 

      <TextView 
       android:id="@+id/pwd" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="Password" 
       android:textColor="#000000" 
       android:textSize="10pt" 
       android:textStyle="bold" /> 

      <EditText 
       android:id="@+id/password" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:hint="Enterpassword" 
       android:singleLine="true" 
       android:textColor="#000000" /> 
     </LinearLayout> 

     <LinearLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/StoreNumInfo" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/WelcomeInfo" 
      android:gravity="center_vertical" 
      android:orientation="horizontal" > 

      <TextView 
       android:id="@+id/num" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="Store Number" 
       android:textColor="#000000" 
       android:textSize="10pt" 
       android:textStyle="bold" /> 

      <EditText 
       android:id="@+id/store_num" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:hint="Enter the Store number" 
       android:imeOptions="actionDone" 
        android:password="true" 

       android:textColor="#000000" > 
      </EditText> 
     </LinearLayout> 

     <LinearLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/Options" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/PassInfo" 
      android:orientation="horizontal" > 

      <CheckBox 
       android:id="@+id/signed_in" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="Stay Signed-in" 
       android:textColor="#000000" /> 


      <Button 
       android:id="@+id/login" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="Login" 
       android:textSize="28dp" 
       android:textStyle="bold" /> 
     </LinearLayout> 


    </LinearLayout> 
</LinearLayout> </ScrollView> 

+0

我只想在中心的綠色區域 – Sridhar

+0

你想在中心的綠色佈局? – kongkea

+0

是的,我想中心的綠色佈局 – Sridhar

回答

12

使用您的綠色佈局RelativeLayout的封面。然後像這樣定義你的greenLayout。 android:layout_centerHorizontal="true" android:layout_centerVertical="true"

看看我的XML可以中心的所有屏幕

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

<LinearLayout 
    android:id="@+id/lin_all" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    android:orientation="vertical" > 
</LinearLayout> 

</RelativeLayout> 
+0

我得到了這個警告味精「這LinearLayout佈局或其RelativeLayout父母是無用的」 – Sridhar

+1

因爲你的佈局是在滾動視圖的線性,我不知道它可以或不可以這樣做Scrollview的線性中心。但這是我所做的沒有滾動視圖。 http://pastie.org/5619676 – kongkea

+0

它在大屏幕上工作正常,我正在小屏幕上測試它。 – Sridhar

7

試試這個:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:gravity="center" 
     android:orientation="vertical" > 

// put all your xml code here 


    </LinearLayout> 

嘗試編輯代碼:

新的編輯:

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


    <RelativeLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/register_header" 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:layout_weight="0.1" 
     android:orientation="horizontal" > 

     <ImageView 
      android:id="@+id/title_image" 
      android:layout_width="wrap_content" 
      android:layout_height="0dp" 
      android:layout_centerHorizontal="true" 
      android:layout_centerVertical="true" 
      android:layout_marginBottom="5dp" 
      android:layout_marginTop="5dp" 
      android:gravity="center" 
      android:src="@drawable/logo_blue" /> 


    </RelativeLayout> 

    <LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:layout_marginLeft="10dp" 
     android:layout_marginRight="10dp" 
     android:layout_weight="0.9" 
     android:gravity="center" 
     android:orientation="vertical" > 

     <LinearLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/UserInfo" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/WelcomeInfo" 
      android:gravity="center_vertical" 
      android:orientation="horizontal" > 

      <TextView 
       android:id="@+id/user" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="User Name" 
       android:textColor="#000000" 
       android:textSize="10pt" 
       android:textStyle="bold" /> 

      <EditText 
       android:id="@+id/username" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:hint="Enter username" 
       android:singleLine="true" 
       android:textColor="#000000" > 
      </EditText> 
     </LinearLayout> 

     <LinearLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/PassInfo" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/UserInfo" 
      android:orientation="horizontal" > 

      <TextView 
       android:id="@+id/pwd" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="Password" 
       android:textColor="#000000" 
       android:textSize="10pt" 
       android:textStyle="bold" /> 

      <EditText 
       android:id="@+id/password" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:hint="Enterpassword" 
       android:singleLine="true" 
       android:textColor="#000000" /> 
     </LinearLayout> 

     <LinearLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/StoreNumInfo" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/WelcomeInfo" 
      android:gravity="center_vertical" 
      android:orientation="horizontal" > 

      <TextView 
       android:id="@+id/num" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="Store Number" 
       android:textColor="#000000" 
       android:textSize="10pt" 
       android:textStyle="bold" /> 

      <EditText 
       android:id="@+id/store_num" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:hint="Enter the Store number" 
       android:imeOptions="actionDone" 
        android:password="true" 

       android:textColor="#000000" > 
      </EditText> 
     </LinearLayout> 

     <LinearLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/Options" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/PassInfo" 
      android:orientation="horizontal" > 

      <CheckBox 
       android:id="@+id/signed_in" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="Stay Signed-in" 
       android:textColor="#000000" /> 


      <Button 
       android:id="@+id/login" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="Login" 
       android:textSize="28dp" 
       android:textStyle="bold" /> 
     </LinearLayout> 


    </LinearLayout> 
</LinearLayout> 
+0

它不工作.. – Sridhar

+0

你執行這個後得到了什麼輸出。你可以發佈截圖 –

+0

試試這個**編輯**代碼並讓我知道 –

1

試試這個XML代碼,它會解決你的問題。

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:orientation="vertical" > 

     <RelativeLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/register_header" 
      android:layout_width="fill_parent" 
      android:layout_height="50dp" 
      android:orientation="horizontal" > 

      <ImageView 
       android:id="@+id/title_image" 
       android:layout_width="wrap_content" 
       android:layout_height="40dp" 
       android:layout_centerHorizontal="true" 
       android:layout_centerVertical="true" 
       android:layout_marginBottom="5dp" 
       android:layout_marginTop="5dp" 
       android:gravity="center" 
       android:src="@drawable/ic_launcher" /> 
     </RelativeLayout> 

     <LinearLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" > 

      <LinearLayout 
       xmlns:android="http://schemas.android.com/apk/res/android" 
       android:id="@+id/UserInfo" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" > 

       <TextView 
        android:id="@+id/user" 
        android:layout_width="match_parent" 
        android:layout_height="fill_parent" 
        android:layout_weight="1" 
        android:text="User Name" 
        android:textColor="#000000" 
        android:textSize="10pt" 
        android:textStyle="bold" /> 

       <EditText 
        android:id="@+id/username" 
        android:layout_width="match_parent" 
        android:layout_height="fill_parent" 
        android:layout_weight="1" 
        android:hint="Enter username" 
        android:singleLine="true" 
        android:textColor="#000000" > 
       </EditText> 
      </LinearLayout> 

      <LinearLayout 
       xmlns:android="http://schemas.android.com/apk/res/android" 
       android:id="@+id/PassInfo" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_below="@id/UserInfo" 
       android:orientation="horizontal" > 

       <TextView 
        android:id="@+id/pwd" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_weight="1" 
        android:text="Password" 
        android:textColor="#000000" 
        android:textSize="10pt" 
        android:textStyle="bold" /> 

       <EditText 
        android:id="@+id/password" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_weight="1" 
        android:hint="Enterpassword" 
        android:singleLine="true" 
        android:textColor="#000000" /> 
      </LinearLayout> 

      <LinearLayout 
       xmlns:android="http://schemas.android.com/apk/res/android" 
       android:id="@+id/StoreNumInfo" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/WelcomeInfo" 
       android:gravity="center_vertical" 
       android:orientation="horizontal" > 

       <TextView 
        android:id="@+id/num" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_weight="1" 
        android:text="Store Number" 
        android:textColor="#000000" 
        android:textSize="10pt" 
        android:textStyle="bold" /> 

       <EditText 
        android:id="@+id/store_num" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_weight="1" 
        android:hint="Enter the Store number" 
        android:imeOptions="actionDone" 
        android:password="true" 
        android:textColor="#000000" > 
       </EditText> 
      </LinearLayout> 

      <LinearLayout 
       xmlns:android="http://schemas.android.com/apk/res/android" 
       android:id="@+id/Options" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_below="@id/PassInfo" 
       android:orientation="horizontal" > 

       <CheckBox 
        android:id="@+id/signed_in" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_weight="1" 
        android:text="Stay Signed-in" 
        android:textColor="#000000" /> 

       <Button 
        android:id="@+id/login" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_weight="1" 
        android:text="Login" 
        android:textSize="28dp" 
        android:textStyle="bold" /> 
      </LinearLayout> 
     </LinearLayout> 
    </LinearLayout> 

</ScrollView> 
0

在父LinearLayout中,添加此

android:orientation="vertical" 
android:gravity="center"