2013-02-12 6 views
2

У меня есть функция меню, в которой у меня есть несколько кнопок с позиционированием. Он идеально подходит для экрана телефона в портретном режиме, но в ландшафтном режиме он разрушен. Я знаю, что когда я фиксирую позиционирование, это будет результатом. Может ли кто-нибудь сказать мне, как разместить мои кнопки, чтобы моя деятельность сохраняла свою форму и в ландшафтном режиме? Спасибо.Android: кнопки позиционирования при повороте с портрета на пейзаж

Вот мой 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:orientation="vertical" > 


<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/bezpecnost_over" 
    android:layout_marginLeft="30dp" 
    android:layout_marginTop="50dp" 


     /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/kurenie_over" 
    android:layout_marginLeft="200dp" 
    android:layout_marginTop="50dp" 

    /> 

    <Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/osvetlenie_over" 
    android:layout_marginLeft="200dp" 
    android:layout_marginTop="200dp" 
    android:onClick="obrOsv" /> 


<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 

    android:background="@drawable/pohodlie_over" 
    android:layout_marginLeft="30dp" 
    android:layout_marginTop="200dp" 
    /> 

</RelativeLayout> 

ответ

3

Он подходит мой экран телефона отлично, когда в портретном режиме, но в ландшафтном режиме он разрушен.

Ожидается, что для ориентировочных макетов. Что разработчики обычно делают в этом сценарии:

  • Создайте папку под Рез под названием layout-land
  • Сделать XML с же именем макета в портретном режиме (содержащийся в res/layout)
  • установки для ландшафта Режим.

Поскольку имя файла XML является то же самое, когда пришло время для деятельности, чтобы установить вид контента

setContentView (R.layout.my_layout); 

my_layout.xml файл из папки layout-land будет использоваться вместо этого.

Также читайте Layouts & Supporting Multiple Screens от Android Docs, они оба имеют полезную информацию с последним говорить о различных классификаторов (таких как layout-land).

+1

Так меня научили тому, как это сделать. если вы не хотите масштабировать свою позицию в зависимости от размера экрана? Не думайте, что это сработает, или будет слишком много работать для одного и того же решения. –

+0

Так что вы предлагаете? –

+0

@MartinNemeth [this] (http://developer.android.com/training/multiscreen/screensizes.html) ссылка должна идти немного глубже о том, как поддерживать несколько экранов * размеров *. В нем говорится о том, как использовать match_parent в ваших интересах, а также использовать квалификаторы. Однако имейте в виду, что чем проще ваш макет, тем легче адаптироваться для нескольких экранов. –

0

Значит, вы используете относительную компоновку, чтобы выровнять кнопки по горизонтали, используя увеличивающееся количество полей? Это полностью не понимает, как работают макеты. Начните с замены RelativeLayout на LinearLayout с ориентацией, настроенной на горизонтальную, и избавиться от всех полей - поля должны быть всего несколькими пикселями между элементами. Я бы посоветовал вам прочитать обучающие программы Android о том, как работают макеты.

Смежные вопросы