This is my first coding in Android. I have a device with 5" screen and 854*480 resolution . The following code looks perfect on portrait but everything moved left on landscape mode(it looks really bad). I have used dp units as it is recommended but still it is not aligning correctly. What am I doing wrong?

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ScrollView01"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<RelativeLayout
 android:id="@+id/RelativeLayout01"
 android:layout_width="match_parent"
 android:layout_height="753dp"
 android:background="@color/orange" >

 <TextView
     android:id="@+id/textView2"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true"
     android:layout_alignParentTop="true"
     android:layout_marginLeft="90dp"
     android:layout_marginTop="120dp"
     android:text="HS6151"
     android:textAppearance="?android:attr/textAppearanceMedium" />

 <TextView
     android:id="@+id/textView3"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true"
     android:layout_alignParentTop="true"
     android:layout_marginLeft="90dp"
     android:layout_marginTop="165dp"
     android:text="PH6151"
     android:textAppearance="?android:attr/textAppearanceMedium" />

 <TextView
     android:id="@+id/textView4"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true"
     android:layout_alignParentTop="true"
     android:layout_marginLeft="90dp"
     android:layout_marginTop="210dp"
     android:text="CY6151"
     android:textAppearance="?android:attr/textAppearanceMedium" />

 <TextView
     android:id="@+id/textView5"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true"
     android:layout_alignParentTop="true"
     android:layout_marginLeft="90dp"
     android:layout_marginTop="255dp"
     android:text="GE6151"
     android:textAppearance="?android:attr/textAppearanceMedium" />

 <TextView
     android:id="@+id/textView6"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true"
     android:layout_alignParentTop="true"
     android:layout_marginLeft="90dp"
     android:layout_marginTop="300dp"
     android:text="GE6152"
     android:textAppearance="?android:attr/textAppearanceMedium" />

 <TextView
     android:id="@+id/textView7"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true"
     android:layout_alignParentTop="true"
     android:layout_marginLeft="90dp"
     android:layout_marginTop="345dp"
     android:text="GE6161"
     android:textAppearance="?android:attr/textAppearanceMedium" />

 <TextView
     android:id="@+id/textView8"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true"
     android:layout_alignParentTop="true"
     android:layout_marginLeft="90dp"
     android:layout_marginTop="390dp"
     android:text="GE6162"
     android:textAppearance="?android:attr/textAppearanceMedium" />

 <TextView
     android:id="@+id/textView9"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true"
     android:layout_alignParentTop="true"
     android:layout_marginLeft="90dp"
     android:layout_marginTop="435dp"
     android:text="GE6163"
     android:textAppearance="?android:attr/textAppearanceMedium" />

 <spinner
     android:id="@+id/spinner1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true"
     android:layout_alignParentTop="true"
     android:layout_marginLeft="200dp"
     android:layout_marginTop="65dp"
     android:entries="@array/Grade"
     android:prompt="@string/hello_world"
     android:text="Medium Text"
     android:textAppearance="?android:attr/textAppearanceMedium" />

 <spinner
     android:id="@+id/spinner2"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true"
     android:layout_alignParentTop="true"
     android:layout_marginLeft="200dp"
     android:layout_marginTop="110dp"
     android:entries="@array/Grade"
     android:prompt="@string/hello_world"
     android:text="Medium Text"
     android:textAppearance="?android:attr/textAppearanceMedium" />

 <spinner
     android:id="@+id/spinner3"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true"
     android:layout_alignParentTop="true"
     android:layout_marginLeft="200dp"
     android:layout_marginTop="155dp"
     android:entries="@array/Grade"
     android:prompt="@string/hello_world"
     android:text="Medium Text"
     android:textAppearance="?android:attr/textAppearanceMedium" />

 <spinner
     android:id="@+id/spinner4"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true"
     android:layout_alignParentTop="true"
     android:layout_marginLeft="200dp"
     android:layout_marginTop="200dp"
     android:entries="@array/Grade"
     android:prompt="@string/hello_world"
     android:text="Medium Text"
     android:textAppearance="?android:attr/textAppearanceMedium" />

 <spinner
     android:id="@+id/spinner5"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true"
     android:layout_alignParentTop="true"
     android:layout_marginLeft="200dp"
     android:layout_marginTop="245dp"
     android:entries="@array/Grade"
     android:prompt="@string/hello_world"
     android:text="Medium Text"
     android:textAppearance="?android:attr/textAppearanceMedium" />

 <spinner
     android:id="@+id/spinner6"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true"
     android:layout_alignParentTop="true"
     android:layout_marginLeft="200dp"
     android:layout_marginTop="290dp"
     android:entries="@array/Grade"
     android:prompt="@string/hello_world"
     android:text="Medium Text"
     android:textAppearance="?android:attr/textAppearanceMedium" />

 <spinner
     android:id="@+id/spinner7"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true"
     android:layout_alignParentTop="true"
     android:layout_marginLeft="200dp"
     android:layout_marginTop="335dp"
     android:entries="@array/Grade"
     android:prompt="@string/hello_world"
     android:text="Medium Text"
     android:textAppearance="?android:attr/textAppearanceMedium" />

 <spinner
     android:id="@+id/spinner8"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true"
     android:layout_alignParentTop="true"
     android:layout_marginLeft="200dp"
     android:layout_marginTop="380dp"
     android:entries="@array/Grade"
     android:prompt="@string/hello_world"
     android:text="Medium Text"
     android:textAppearance="?android:attr/textAppearanceMedium" />

 <spinner
     android:id="@+id/spinner9"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true"
     android:layout_alignParentTop="true"
     android:layout_marginLeft="200dp"
     android:layout_marginTop="425dp"
     android:entries="@array/Grade"
     android:prompt="@string/hello_world"
     android:text="Medium Text"
     android:textAppearance="?android:attr/textAppearanceMedium" />

 <Button
     android:id="@+id/button1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_below="@+id/spinner9"
     android:layout_centerHorizontal="true"
     android:layout_marginTop="19dp"
     android:text="calculate" />

 <space
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentTop="true"
     android:layout_centerHorizontal="true"
     android:layout_marginTop="55dp" />

 <TextView
     android:id="@+id/textView11"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_centerHorizontal="true"
     android:layout_marginTop="30dp"
     android:gravity="center"
     android:text="SEMESTER I - GPA CALCULATOR"
     android:textAppearance="?android:attr/textAppearanceMedium"
     android:textSize="20dp" />

 <TextView
     android:id="@+id/editText1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_below="@+id/button1"
     android:layout_centerHorizontal="true"
     android:layout_marginTop="1dp"
     android:editable="false"
     android:ems="10"
     android:gravity="center"
     android:inputType="number"
     android:textSize="20dp" />

 <TextView
     android:id="@+id/textView1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true"
     android:layout_alignParentTop="true"
     android:layout_marginLeft="90dp"
     android:layout_marginTop="75dp"
     android:text="MA6151"
     android:textAppearance="?android:attr/textAppearanceMedium" />

</RelativeLayout>

</ScrollView>
有帮助吗?

解决方案

1. Using a fixed height for your container isn't a good idea: android:layout_height="753dp" because in landscape, your height won't be 854, but 480.
As an alternative, you can use two same-named xml layouts in res/layout-port and res/layout-land, with specific designs.

2. Most of your controls are aligned to the left by design, in portrait mode.
So, they will be left aligned also in landscape, if you don't provide an alternative layout file as described above.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top