2017-02-07 1 views
-1

잘 작동하는 Android 앱을 개발했지만 문제는 작은 화면 전화에서 내 애플리케이션을 실행할 때 일부 구성 요소가 화면 밖으로 나옵니다. 그러니 내 앱에 어떤 화면을 적용해야하는지 알려주세요.일부 구성 요소가 화면 밖으로 나옴

아래에있는 모든 폴더를 만들고이 폴더 각각에 내 앱의 레이아웃 파일을 모두 복사하여 붙여 넣어야합니까? 아니면 각 폴더마다 다른 레이아웃 파일을 디자인해야합니까?

나는 안드로이드를 처음 접하기 때문에 간단한 예를 들고 도움을주세요.

폴더 : 내 코드의 MainActivity의

res/layout/my_layout.xml 
res/layout-small/my_layout.xml 
res/layout-large/my_layout.xml 
res/layout-xlarge/my_layout.xml 
res/layout-xlarge-land/my_layout.xml 
res/drawable-mdpi/my_icon.png 
res/drawable-hdpi/my_icon.png 
res/drawable-xhdpi/my_icon.png 

XML :

<?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: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" 
    tools:context="com.example.appdeveloper.appname.MainActivity" 
    android:background="#ff003b" 
    android:focusableInTouchMode="true"> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/appLogoImage_id" 
     android:src="@drawable/applogo" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="1000dp" /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="50dp" 
     android:inputType="textPassword" 
     android:ems="10" 
     android:id="@+id/loginPassword_id" 
     android:textAlignment="center" 
     android:hint="Enter Application Password" 
     android:textColor="#ffffff" 
     android:textColorHint="#000000" 
     android:layout_below="@+id/appLogoImage_id" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:layout_marginTop="50dp" 
     android:background="@android:color/transparent" 
     android:visibility="visible" 
     android:textCursorDrawable="@drawable/white_cursor" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="REGISTRATION" 
     android:id="@+id/regTitle_id" 
     android:layout_below="@+id/appLogoImage_id" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:textColor="#ffffff" 
     android:textAlignment="center" 
     android:layout_marginTop="50dp" 
     android:visibility="invisible" 
     android:textStyle="bold" /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textNoSuggestions|text" 
     android:ems="10" 
     android:id="@+id/regName_id" 
     android:layout_below="@+id/loginPassword_id" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:hint="Your Good Name" 
     android:textAlignment="center" 
     android:textColor="#ffffff" 
     android:textColorHint="#000000" 
     android:background="@android:color/transparent" 
     android:layout_marginTop="0dp" 
     android:textCursorDrawable="@drawable/white_cursor" 
     android:visibility="invisible" /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textPassword" 
     android:ems="10" 
     android:id="@+id/regPassword_id" 
     android:layout_below="@+id/regName_id" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:hint="Application Password" 
     android:textAlignment="center" 
     android:textColor="#ffffff" 
     android:textColorHint="#000000" 
     android:background="@android:color/transparent" 
     android:layout_marginTop="10dp" 
     android:textCursorDrawable="@drawable/white_cursor" 
     android:visibility="invisible" /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textPassword" 
     android:ems="10" 
     android:id="@+id/regVerifyPass_id" 
     android:layout_below="@+id/regPassword_id" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:hint="Verify Password" 
     android:textAlignment="center" 
     android:textColor="#ffffff" 
     android:textColorHint="#000000" 
     android:background="@android:color/transparent" 
     android:layout_marginTop="10dp" 
     android:textCursorDrawable="@drawable/white_cursor" 
     android:visibility="invisible" /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textPassword" 
     android:ems="10" 
     android:id="@+id/regRingCode_id" 
     android:hint="Ringing Codeword" 
     android:textAlignment="center" 
     android:textColor="#ffffff" 
     android:textColorHint="#000000" 
     android:background="@android:color/transparent" 
     android:layout_below="@+id/regVerifyPass_id" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:layout_marginTop="10dp" 
     android:textCursorDrawable="@drawable/white_cursor" 
     android:visibility="invisible" /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textPassword" 
     android:ems="10" 
     android:id="@+id/regLocationCode_id" 
     android:hint="Location Codeword" 
     android:textAlignment="center" 
     android:textColor="#ffffff" 
     android:textColorHint="#000000" 
     android:background="@android:color/transparent" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_below="@+id/regRingCode_id" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:layout_marginTop="10dp" 
     android:textCursorDrawable="@drawable/white_cursor" 
     android:visibility="invisible" /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="phone" 
     android:ems="10" 
     android:id="@+id/regNum1_id" 
     android:hint="1st Trusted Number" 
     android:textAlignment="center" 
     android:textColor="#ffffff" 
     android:textColorHint="#000000" 
     android:background="@android:color/transparent" 
     android:layout_below="@+id/regLocationCode_id" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:layout_marginTop="10dp" 
     android:textCursorDrawable="@drawable/white_cursor" 
     android:visibility="invisible" 
     android:phoneNumber="false" /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="phone" 
     android:ems="10" 
     android:id="@+id/regNum2_id" 
     android:hint="2nd Trusted Number" 
     android:textAlignment="center" 
     android:textColor="#ffffff" 
     android:textColorHint="#000000" 
     android:background="@android:color/transparent" 
     android:layout_below="@+id/regNum1_id" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:layout_marginTop="10dp" 
     android:textCursorDrawable="@drawable/white_cursor" 
     android:visibility="invisible" 
     android:phoneNumber="false" /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="phone" 
     android:ems="10" 
     android:id="@+id/regNum3_id" 
     android:hint="3rd Trusted Number" 
     android:textAlignment="center" 
     android:textColor="#ffffff" 
     android:textColorHint="#000000" 
     android:background="@android:color/transparent" 
     android:layout_below="@+id/regNum2_id" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:layout_marginTop="10dp" 
     android:textCursorDrawable="@drawable/white_cursor" 
     android:visibility="invisible" 
     android:phoneNumber="false" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Register" 
     android:id="@+id/regButton_id" 
     android:layout_below="@+id/regNum3_id" 
     android:layout_marginTop="15dp" 
     android:layout_alignLeft="@+id/appLogoImage_id" 
     android:layout_alignStart="@+id/appLogoImage_id" 
     android:layout_alignRight="@+id/appLogoImage_id" 
     android:layout_alignEnd="@+id/appLogoImage_id" 
     android:visibility="invisible" /> 

</RelativeLayout> 
+0

대답은 레이아웃이 실제로 어떻게 생겼는지에 크게 의존 값, 그래서 당신은 그뿐만 아니라 여기에 게시합니다. 그 외에 https://developer.android.com/training/multiscreen/screensizes.html 및 https://developer.android.com/guide/practices/screens_support.html을 읽어 보시기 바랍니다. –

+0

@AndrewBrooke 나는 이미 이러한 작업을 수행했습니다. 모래밭. 나는 안드로이드에 익숙하지 않고 해결책을 찾아 낼 수가 없습니다. 내 응용 프로그램에는 MainActivity에 대한 로그인 페이지 ('EditTexts'와'Button' 포함)가 있고, 다음 활동에서의'ListView'와 연속적인 활동에서의 간단한'EditTexts'와'Buttons'가 있습니다. 또한'Relative' 레이아웃을 사용하고 있습니다. 이제 해결책을 찾아 주시겠습니까? – Agha

+0

레이아웃의 전체 XML을 원래 게시물에 추가 할 수 있습니까? –

답변

0

하지 않는 한 당신이 부드러운 코드 dimen.xml 파일에서 치수 (마진, 패딩, TEXTSIZE) 귀하의 애플 리케이션은 다른 ppi (인치당 픽셀)가있는 휴대폰에서 다른 레이아웃을 갖게됩니다.

Dimens.xml에 1000dp가있는 모든 여백을 특별히 추가하십시오.

이유 : Android는 dimens.xml 파일을 통해 모든 사례 (hdpi, mdpi, xhdpi, ....)를 처리하며 사용자의 경우 XMl 레이아웃 편집기의 미리보기 화면에 초점을 맞추고 있습니다. 고정 ppi를 가지며 다른 ppi를 갖는 다른 화면의 경우를 무시합니다. 고해상도에서

귀하의 레이아웃 파일

<?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: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" 
tools:context="com.example.appdeveloper.appname.MainActivity" 
android:background="#ff003b" 
android:focusableInTouchMode="true"> 

<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/appLogoImage_id" 
    android:src="@drawable/applogo" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="@dimen/margin_0" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="@dimen/margin_50" 
    android:inputType="textPassword" 
    android:ems="10" 
    android:id="@+id/loginPassword_id" 
    android:textAlignment="center" 
    android:hint="Enter Application Password" 
    android:textColor="#ffffff" 
    android:textColorHint="#000000" 
    android:layout_below="@+id/appLogoImage_id" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" 
    android:layout_marginTop="@dimen/margin_50" 
    android:background="@android:color/transparent" 
    android:visibility="visible" 
    android:textCursorDrawable="@drawable/white_cursor" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:text="REGISTRATION" 
    android:id="@+id/regTitle_id" 
    android:layout_below="@+id/appLogoImage_id" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" 
    android:textColor="#ffffff" 
    android:textAlignment="center" 
    android:layout_marginTop="@dimen/margin_50" 
    android:visibility="invisible" 
    android:textStyle="bold" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:inputType="textNoSuggestions|text" 
    android:ems="10" 
    android:id="@+id/regName_id" 
    android:layout_below="@+id/loginPassword_id" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" 
    android:hint="Your Good Name" 
    android:textAlignment="center" 
    android:textColor="#ffffff" 
    android:textColorHint="#000000" 
    android:background="@android:color/transparent" 
    android:layout_marginTop="@dimen/margin_0" 
    android:textCursorDrawable="@drawable/white_cursor" 
    android:visibility="invisible" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:inputType="textPassword" 
    android:ems="10" 
    android:id="@+id/regPassword_id" 
    android:layout_below="@+id/regName_id" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" 
    android:hint="Application Password" 
    android:textAlignment="center" 
    android:textColor="#ffffff" 
    android:textColorHint="#000000" 
    android:background="@android:color/transparent" 
    android:layout_marginTop="@dimen/margin_10" 
    android:textCursorDrawable="@drawable/white_cursor" 
    android:visibility="invisible" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:inputType="textPassword" 
    android:ems="10" 
    android:id="@+id/regVerifyPass_id" 
    android:layout_below="@+id/regPassword_id" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" 
    android:hint="Verify Password" 
    android:textAlignment="center" 
    android:textColor="#ffffff" 
    android:textColorHint="#000000" 
    android:background="@android:color/transparent" 
    android:layout_marginTop="@dimen/margin_10" 
    android:textCursorDrawable="@drawable/white_cursor" 
    android:visibility="invisible" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:inputType="textPassword" 
    android:ems="10" 
    android:id="@+id/regRingCode_id" 
    android:hint="Ringing Codeword" 
    android:textAlignment="center" 
    android:textColor="#ffffff" 
    android:textColorHint="#000000" 
    android:background="@android:color/transparent" 
    android:layout_below="@+id/regVerifyPass_id" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" 
    android:layout_marginTop="@dimen/margin_10" 
    android:textCursorDrawable="@drawable/white_cursor" 
    android:visibility="invisible" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:inputType="textPassword" 
    android:ems="10" 
    android:id="@+id/regLocationCode_id" 
    android:hint="Location Codeword" 
    android:textAlignment="center" 
    android:textColor="#ffffff" 
    android:textColorHint="#000000" 
    android:background="@android:color/transparent" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_below="@+id/regRingCode_id" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" 
    android:layout_marginTop="@dimen/margin_10" 
    android:textCursorDrawable="@drawable/white_cursor" 
    android:visibility="invisible" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:inputType="phone" 
    android:ems="10" 
    android:id="@+id/regNum1_id" 
    android:hint="1st Trusted Number" 
    android:textAlignment="center" 
    android:textColor="#ffffff" 
    android:textColorHint="#000000" 
    android:background="@android:color/transparent" 
    android:layout_below="@+id/regLocationCode_id" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" 
    android:layout_marginTop="@dimen/margin_10" 
    android:textCursorDrawable="@drawable/white_cursor" 
    android:visibility="invisible" 
    android:phoneNumber="false" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:inputType="phone" 
    android:ems="10" 
    android:id="@+id/regNum2_id" 
    android:hint="2nd Trusted Number" 
    android:textAlignment="center" 
    android:textColor="#ffffff" 
    android:textColorHint="#000000" 
    android:background="@android:color/transparent" 
    android:layout_below="@+id/regNum1_id" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" 
    android:layout_marginTop="@dimen/margin_10" 
    android:textCursorDrawable="@drawable/white_cursor" 
    android:visibility="invisible" 
    android:phoneNumber="false" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:inputType="phone" 
    android:ems="10" 
    android:id="@+id/regNum3_id" 
    android:hint="3rd Trusted Number" 
    android:textAlignment="center" 
    android:textColor="#ffffff" 
    android:textColorHint="#000000" 
    android:background="@android:color/transparent" 
    android:layout_below="@+id/regNum2_id" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" 
    android:layout_marginTop="@dimen/margin_10" 
    android:textCursorDrawable="@drawable/white_cursor" 
    android:visibility="invisible" 
    android:phoneNumber="false" /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Register" 
    android:id="@+id/regButton_id" 
    android:layout_below="@+id/regNum3_id" 
    android:layout_marginTop="@dimen/margin_15" 
    android:layout_alignLeft="@+id/appLogoImage_id" 
    android:layout_alignStart="@+id/appLogoImage_id" 
    android:layout_alignRight="@+id/appLogoImage_id" 
    android:layout_alignEnd="@+id/appLogoImage_id" 
    android:visibility="invisible" /> 

</RelativeLayout> 

귀하의 dimens.xml은/

<resources> 
<dimen name="margin_10">10dp</dimen> 
<dimen name="margin_0">0dp</dimen> 
<dimen name="margin_15">15dp</dimen> 
<dimen name="margin_30">30dp</dimen> 
<dimen name="margin_50">50dp</dimen> 
<dimen name="margin_20">20dp</dimen> 

</resources> 
+0

그것은 '1000dp'가 아니며,'0dp'라고 생각하십시오. – Agha

+0

지금 확인하십시오. 두 파일을 게시했습니다. – codepeaker

+0

작동합니까 ?? – codepeaker

관련 문제