2017-01-22 1 views
-5

Ich habe dieses Login-Layout geschrieben, das perfekt auf mein Gerät passt. Mein Problem ist, dass auf einem anderen Gerät nicht korrekt angezeigt wird, da die angegebenen Werte für die oberen linken Ränder verwendet werden.Layout für verschiedene Auflösungsgeräte

Was muss ich tun, um sicher zu sein, dass Beschränkungen auf jedem Gerät eingehalten werden?

P.S. Ich habe Bilder für MDPI, hdpi usw.

Der Code ist:

<?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:id="@+id/activity_login" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:theme="@style/AppTheme.NoActionBar" 
tools:context="com.abc.abc.Login" 
android:layout_gravity="center_horizontal"> 

    <RelativeLayout android:id="@+id/content_container" 
     android:layout_width="match_parent" 
     android:layout_height="710dp" 
     android:gravity="center_horizontal"> 


     <RelativeLayout android:id="@+id/login_content" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center_horizontal"> 

      <ImageView android:id="@+id/login_button" 
       android:src="@drawable/login" 
       android:layout_marginTop="588dp" 
       android:layout_width="360dp" 
       android:layout_height="53dp" /> 

      <ImageView android:id="@+id/email_and_password" 
       android:src="@drawable/email_and_password" 
       android:layout_marginTop="465dp" 
       android:layout_width="362dp" 
       android:layout_height="107dp" /> 

      <ImageView android:id="@+id/separator" 
       android:src="@drawable/separator" 
       android:layout_marginStart="169dp" 
       android:layout_marginTop="412dp" 
       android:layout_width="25dp" 
       android:layout_height="12dp" /> 

      <ImageView android:id="@+id/facebook_button" 
       android:src="@drawable/facebook" 
       android:layout_marginTop="383dp" 
       android:layout_width="166dp" 
       android:layout_height="66dp" /> 

      <ImageView android:id="@+id/google_button" 
       android:src="@drawable/google" 
       android:layout_marginStart="196dp" 
       android:layout_marginTop="383dp" 
       android:layout_width="166dp" 
       android:layout_height="66dp" /> 

      <ImageView android:id="@+id/dont_have_an_account" 
       android:src="@drawable/dont_have_an_account" 
       android:layout_marginStart="54dp" 
       android:layout_marginTop="665dp" 
       android:layout_width="255dp" 
       android:layout_height="19dp" /> 

      <ImageView android:id="@+id/logo" 
       android:src="@drawable/logo1" 
       android:layout_marginTop="80dp" 
       android:layout_width="220dp" 
       android:layout_height="219dp" 
       android:layout_alignParentTop="true" 
       android:layout_centerHorizontal="true" /> 

     </RelativeLayout> 

    </RelativeLayout> 

+1

"um sicherzustellen, dass Einschränkungen auf jedem Gerät eingehalten werden": Welche Einschränkungen? Im Moment haben Sie absolute Werte für die Ränder angegeben und sie werden auf dem anderen Gerät gespeichert (aber wahrscheinlich passen sie nicht). – Henry

+0

Versuchen Sie, unterschiedliche Werte in Ihren 'dimens'-Dateien zu verwenden. –

Antwort

0

Versuchen Sie nicht MarginTop auf allen Ansichten zu verwenden. Stattdessen legen Sie die oberste Ansicht mit einem marginTop fest und dann können alle darunter liegenden Bilder von android:layout_below="<imagView id>" und mit einem marginTop relativ zur obigen Ansicht platziert werden und nicht zum übergeordneten Element. Sie können dies überprüfen answer

Verwandte Themen