2017-02-07 1 views
-1

うまく動作するアンドロイドアプリを開発しましたが、小さな画面の電話でアプリケーションを実行すると、一部のコンポーネントが画面外に出るという問題があります。だから私はそれがすべての画面に収まるように私のアプリで何をすべきか教えてください?一部のコンポーネントが画面外に出る

これらのフォルダをすべて作成して(以下に示す)、私のアプリのすべてのレイアウトファイルをこれらのフォルダにコピーして貼り付けてください。あるいは、これらのフォルダごとに異なるレイアウトファイルを設計する必要がありますか?

私はアンドロイドが初めてです。簡単な例を挙げて助けてください。

フォルダ:マイコードの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を有する他のスクリーンの場合を無視する。解像度で

あなたのレイアウトファイル

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

関連する問題