2016-07-23 53 views
-2

我很喜欢相对布局,所以在开发应用程序时,使用相对布局,我发现应用程序不适合所有屏幕尺寸的问题。我为我的应用开发了整个布局。现在可以üPLZ告诉我一个解决方案,以便我不必在布局中改变太多,我的应用将适用于所有屏幕。一个xml如下所示。如何制作适合所有屏幕尺寸的相对布局?

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
app:layout_behavior="@string/appbar_scrolling_view_behavior" 
tools:context="com.example.medilearn.medilearn.Initiater" 
tools:showIn="@layout/activity_initiater" 
android:background="#e0e0e0"> 
<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="50dp" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:gravity="center|right" 
    android:text="Mediacl e-learning content distribution system " 
    android:id="@+id/textView2" 
    android:layout_alignParentTop="true" 
    android:background="#484848" 
    android:textColor="#ffffff" 
    android:layout_marginLeft="200dp" /> 

<TextView 
    android:layout_width="300dp" 
    android:layout_height="50dp" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:text="Welcome" 
    android:id="@+id/textView3" 
    android:layout_below="@+id/textView2" 
    android:layout_alignEnd="@+id/textView2" 
    android:textIsSelectable="false" 
    android:textStyle="bold" 
    android:layout_marginTop="50dp" /> 

<TextView 
    android:layout_width="300dp" 
    android:layout_height="50dp" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:text="Username" 
    android:id="@+id/textView13" 
    android:layout_below="@+id/textView3" 
    android:layout_alignStart="@+id/textView3" 
    android:layout_marginTop="50dp" /> 

<EditText 
    android:layout_width="300dp" 
    android:layout_height="50dp" 
    android:id="@+id/editText" 
    android:layout_below="@+id/textView13" 
    android:layout_alignStart="@+id/textView13" 
    android:layout_marginTop="25dp" /> 

<TextView 
    android:layout_width="300dp" 
    android:layout_height="50dp" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:text="User Code" 
    android:id="@+id/textView14" 
    android:layout_below="@+id/editText" 
    android:layout_alignStart="@+id/editText" /> 

<EditText 
    android:layout_width="300dp" 
    android:layout_height="50dp" 
    android:inputType="textPassword" 
    android:ems="10" 
    android:id="@+id/editText2" 
    android:layout_below="@+id/textView14" 
    android:layout_alignStart="@+id/textView14" 
    android:layout_marginTop="25dp" /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="50dp" 
    android:text="Start" 
    android:id="@+id/SigninButton" 
    android:layout_below="@+id/editText2" 
    android:layout_alignStart="@+id/editText2" 
    android:layout_marginTop="50dp" 
    android:layout_marginLeft="80dp" 
    android:background="#006090" 
    android:textColor="#ffffff" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="50dp" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:gravity="center" 
    android:text="Version : 1.0" 
    android:id="@+id/textView15" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentStart="true" 
    android:background="#484848" 
    android:textColor="#ffffff" 
    android:textIsSelectable="false" 
    android:textAlignment="textStart" 
    android:layout_alignRight="@+id/imageView" 
    android:layout_alignEnd="@+id/imageView" /> 

<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:text="Current Image Feeds will be shown here" 
    android:id="@+id/textView16" 
    android:layout_below="@+id/textView2" 
    android:layout_alignParentStart="true" 
    android:layout_marginRight="300dp" 
    android:layout_marginBottom="50dp" 
    android:textColor="#161515" /> 

<Button 
    android:layout_width="200dp" 
    android:layout_height="35dp" 
    android:text="Reload Content" 
    android:id="@+id/button7" 
    android:layout_alignParentBottom="true" 
    android:layout_alignStart="@+id/editText2" 
    android:layout_marginLeft="50dp" 
    android:background="#006090" 
    android:textColor="#ffffff" 
    android:layout_marginBottom="7.5dp" /> 

<ImageView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/imageView" 
    android:layout_gravity="center_horizontal|top" 
    android:src="@drawable/medilearn" 

    android:scaleType="fitCenter" 
    android:layout_alignBottom="@+id/textView2" 
    android:layout_alignParentStart="true" 
    android:layout_marginRight="950dp" 
    android:background="#484848" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="50dp" 
    android:text="    Media file version:02JUL2016" 
    android:id="@+id/textView" 
    android:layout_alignParentBottom="true" 
    android:layout_toRightOf="@+id/textView15" 
    android:layout_toEndOf="@+id/textView15" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:textColor="#ffffff" 
    android:background="#484848" 
    android:gravity="center" /> 

<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="50dp" 
    android:id="@+id/textView5" 
    android:layout_alignParentBottom="true" 
    android:layout_toRightOf="@+id/textView" 
    android:layout_toEndOf="@+id/textView" 
    android:background="#484848" /> 

</RelativeLayout> 

hight,按钮和textview的宽度必须相同。

+0

您可能要切换到[PercentRelativeLayout(https://developer.android.com/reference/android/support/percent/PercentRelativeLayout.html),而不是 –

+0

感谢ü这么多的回复。如果我将布局切换到PercentageRelativeLayout,我的应用程序是否适合所有屏幕? –

+0

既然你可以使用百分比......答案是肯定的。 –

回答

2

以下是所有与所有布局匹配的代码,其代码只是您的代码示例,请根据您的要求进行调整。

以下是您的xml文件。请复制并贴上您的布局并查看结果。

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="#e0e0e0" 
     android:paddingBottom="@dimen/activity_vertical_margin" 
     android:paddingLeft="@dimen/activity_horizontal_margin" 
     android:paddingRight="@dimen/activity_horizontal_margin" 
     android:paddingTop="@dimen/activity_vertical_margin" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

<TextView 
    android:id="@+id/textView2" 
    android:layout_width="fill_parent" 
    android:layout_height="50dp" 
    android:background="#484848" 
    android:gravity="center" 
    android:text="Mediacl e-learning content distribution system " 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:textColor="#ffffff" /> 

<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/textView2"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 


     <TextView 
      android:id="@+id/textView3" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="10dp" 
      android:text="Welcome" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:textIsSelectable="false" 
      android:textStyle="bold" /> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:orientation="horizontal"> 

      <TextView 
       android:id="@+id/textView13" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/textView3" 
       android:layout_marginTop="10dp" 
       android:layout_weight="0.5" 
       android:text="Username" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <EditText 
       android:id="@+id/editText" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/textView13" 
       android:layout_marginTop="10dp" 
       android:layout_weight="0.5" 
       android:hint="Your edit text" /> 

     </LinearLayout> 


     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:orientation="horizontal"> 

      <TextView 
       android:id="@+id/textView14" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="0.5" 
       android:text="User Code" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <EditText 
       android:id="@+id/editText2" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="0.5" 
       android:ems="10" 
       android:hint="Your edit text" 
       android:inputType="textPassword" /> 

     </LinearLayout> 

     <TextView 
      android:id="@+id/textView15" 
      android:layout_width="wrap_content" 
      android:layout_height="50dp" 
      android:layout_alignEnd="@+id/imageView" 
      android:layout_alignRight="@+id/imageView" 
      android:background="#484848" 
      android:gravity="center" 
      android:text="Version : 1.0" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:textColor="#ffffff" 
      android:textIsSelectable="false" /> 

     <TextView 
      android:id="@+id/textView16" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Current Image Feeds will be shown here" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:textColor="#161515" /> 

     <Button 
      android:id="@+id/SigninButton" 
      android:layout_width="wrap_content" 
      android:layout_height="50dp" 
      android:layout_gravity="center" 
      android:layout_marginTop="10dp" 
      android:background="#006090" 
      android:text="Start" 
      android:textColor="#ffffff" /> 

     <Button 
      android:id="@+id/button7" 
      android:layout_width="200dp" 
      android:layout_height="35dp" 
      android:layout_gravity="center" 
      android:layout_marginTop="10dp" 
      android:background="#006090" 
      android:text="Reload Content" 
      android:textColor="#ffffff" /> 

     <ImageView 
      android:id="@+id/imageView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal|top" 
      android:layout_marginTop="10dp" 
      android:background="#484848" 
      android:scaleType="fitCenter" 
      android:src="@drawable/ic_launcher" /> 

     <TextView 
      android:id="@+id/textView" 
      android:layout_width="wrap_content" 
      android:layout_height="50dp" 
      android:layout_gravity="center" 
      android:layout_marginTop="10dp" 
      android:background="#484848" 
      android:gravity="center" 
      android:text="Media file version:02JUL2016" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:textColor="#ffffff" /> 

    </LinearLayout> 
    </ScrollView> 
</RelativeLayout> 
+0

非常感谢你。是的,它正在工作。再次感谢。 –

+0

如果它工作,请点击箭头接受答案:)。 – TopsAndy

0

删除一些默认属性可能有用,试试看,我会告诉你楼下。

android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 

为什么会发生这种情况。参考代码会告诉你答案。

<resources> 

    <!-- Default screen margins, per the Android Design guidelines. --> 
    <dimen name="activity_horizontal_margin">16dp</dimen> 
    <dimen name="activity_vertical_margin">16dp</dimen> 

</resources>