2013-01-04 26 views
6

Chcę zaprojektować układ dla mojego ekranu logowania, próbowałem następujące kody. Korzystając z niektórych zakodowanych wartości, mam centrum środkowego zielonego układu kolorów dla niektórych rozmiarów ekranu. Wiem, że używanie wartości zakodowanych na stałe nie działa na różnych rozmiarach ekranu. Próbowałem wielu rzeczy na SO. Proszę podać mi najlepszą drogę enter image description hereAndroid: Align LinearLayout center dla wszystkich rozmiarów ekranu

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

Po prostu chcę zielony obszar w centrum – Sridhar

+0

chcesz zielony układ w centrum? – kongkea

+0

Tak, chcę ten zielony układ w centrum – Sridhar

Odpowiedz

12

Użyj okładkę swojej zielonej układzie jak RelativeLayout. a następnie zdefiniuj swój greenLayout w ten sposób. android:layout_centerHorizontal="true" android:layout_centerVertical="true"

Spójrz na moim xml można go wyśrodkować cały ekran

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

Mam to ostrzeżenie msg "Ten układ LinearLayout lub jego rodzic RelativeLayout jest bezużyteczny" – Sridhar

+1

Ponieważ twój układ jest w Liniowym widoku przewijania i nie wiem czy może lub nie, że może centrum liniowej Scrollview. ale to, co zrobiłem, nie ma Scrollview. http://pastie.org/5619676 – kongkea

+0

Działa dobrze na dużym ekranie, testuję go na małym ekranie. – Sridhar

7

Spróbuj tego:

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

Spróbuj zmodyfikowany kod:

NOWA EDYCJA:

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

To nie działa. – Sridhar

+0

jaki wynik uzyskujesz po wykonaniu tego. Możesz opublikować zrzut ekranu –

+0

spróbuj tego ** EDYTUJ ** kod i daj mi znać –

1

Spróbuj tego kodu XML, to rozwiąże problem youyr.

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

W LinearLayout dominującej, dodaj

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

.

Powiązane problemy