2013-01-04 20 views
6

Desidero progettare un layout per la schermata di accesso, ho provato i seguenti codici. Usando alcuni valori hardcoded ho ottenuto il mio centro di layout del colore verde centrale per alcune dimensioni dello schermo. So che l'uso di valori codificati non funziona su schermi di dimensioni diverse. Ho provato numerosi oggetti su SO. Si prega di fornire me il miglior modo enter image description hereAndroid: allinea il centro LinearLayout per tutte le dimensioni dello schermo

<?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

Voglio solo l'area verde al centro – Sridhar

+0

vuoi il layout verde al centro? – kongkea

+0

sì, voglio quel layout verde al centro – Sridhar

risposta

12

Usa la tua copertina del layout verde come RelativeLayout. e quindi definire il tuo greenLayout in questo modo. android:layout_centerHorizontal="true" android:layout_centerVertical="true"

Guardate il mio xml può centrare tutto schermo

<?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

Ho ricevuto questo avviso msg "Questo layout LinearLayout o il suo genitore RelativeLayout è inutile" – Sridhar

+1

Cuz il tuo layout è nella Linear della scrollview e non so che possa o non possa centro di Scrollview lineare. ma questo è quello che ho fatto con Scrollview. http://pastie.org/5619676 – kongkea

+0

Funzionante bene su grande schermo, lo sto testando in piccolo schermo. – Sridhar

7

Prova questo:

<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> 

provare il codice modificato:

NUOVO EDIT:

<?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

Non funziona .. – Sridhar

+0

quale output si ottiene dopo l'esecuzione di questo.Puoi postare screenshot –

+0

prova questo ** EDIT ** code e fammi sapere –

1

Prova questo codice XML, risolverà il tuo problema.

<?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

Nel LinearLayout genitore, aggiungere questo

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

.

Problemi correlati