2017-01-22 23 views
-5

Я написал этот макет входа, который идеально подходит для моего устройства. Моя проблема в том, что на другом устройстве не будет отображаться правильно, потому что указанные значения используются для полей верхнего и левого полей.Макет, используемый на разных устройствах разрешения

Что мне нужно сделать, чтобы быть уверенным, что ограничения будут храниться на любом устройстве?

P.S. У меня есть изображения для MDPI, ИПЧР и т.д.

Код:

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

«чтобы быть уверенным, что ограничения будут храниться на любом устройстве»: какие ограничения? На данный момент вы указали абсолютные значения полей, и они хранятся на другом устройстве (но, вероятно, они не подходят). – Henry

+0

Попробуйте использовать разные значения в ваших файлах 'dimens'. –

ответ

0

Старайтесь не использовать MarginTop на всех видах. Вместо этого установите верхний вид с помощью marginTop, а затем все изображения под ними можно поместить на android:layout_below="<imagView id>" и с некоторым marginTop относительно представления выше, а не родителя. Вы можете проверить это answer