2017-01-22 12 views
-5

自分のデバイスに完全に適合するこのログインレイアウトを書きました。私の問題は、指定された値が左上余白に使用されているため、別のデバイスでは正しく表示されないことです。異なる解像度のデバイスで使用されるレイアウト

制限はすべてのデバイスに保持されることを確認するために必要なことはありますか?

P.S.私はMDPIのための画像を持って、hdpiなど

コードは次のとおりです。

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

関連する問題