2017-01-22 49 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