Изменение макета Xml при изменении ориентации

У меня есть два действия, которые открываются в зависимости от наличия SD карты. В одном из действий есть три Buttons и TextView а другой – ImageView , кнопка и управление увеличением. Когда я меняю ориентацию, кнопки становятся скремблированными в горизонтальном направлении. Как обойти это?

Схема карты «SD»

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#1E1E1E" android:orientation="vertical" > <Button android:id="@+id/button_print" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="44dp" android:background="@drawable/my_button" android:text="@string/print" /> <TextView android:id="@+id/text_SDmissing" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="80dp" android:text="@string/SDmissing" android:textSize="20dp" /> <Button android:id="@+id/button_camera" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/button_print" android:layout_centerHorizontal="true" android:layout_marginBottom="58dp" android:background="@drawable/my_button" android:text="@string/camera" /> <Button android:id="@+id/button_insert" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/text_SDmissing" android:layout_centerHorizontal="true" android:layout_marginTop="40dp" android:background="@drawable/my_button" android:text="@string/insert" /> </RelativeLayout> 

Вы должны создать отдельные файлы XML для портретных и ландшафтных режимов и поместить их в разные каталоги. Устройство автоматически выберет правильный. Вы можете использовать следующую структуру каталогов

 res/layout/my_layout.xml res/layout-land/layout.xml 

Для получения дополнительной информации вы можете проверить: http://developer.android.com/guide/practices/screens_support.html

Вы можете создать папку в своем проекте под названием «layout-land» (в каталоге «res»). Там вы можете скопировать все ваши стили xml из обычной папки «layout» и восстановить их в ландшафтном режиме. Android автоматически будет использовать эти макеты для ландшафтного режима.

Ваш проект будет выглядеть так:

Введите описание изображения здесь

Intereting Posts