2016-07-23 3 views
-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: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> 

높이, 버튼 및 텍스트 뷰의 너비는 동일해야합니다.

+0

당신은 귀하의 회신에 대한 [PercentRelativeLayout] (https://developer.android.com/reference/android/support/percent/PercentRelativeLayout.html)를 대신 –

+0

는 감사 u는 너무 많이로 전환 할 수 있습니다. 내 레이아웃을 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> 
관련 문제