2012-06-06 3 views
2

Я хотел бы повернуть Кнопки/TextViews/etc. при изменении ориентации экрана, но я хочу сохранить макет без изменений. Как это можно сделать? Я использую LinearLayouts.Вращающиеся виды (но не макеты) при изменении ориентации экрана

Это то, что я имею в виду: http://i46.tinypic.com/209hwnr.png

+1

может создать различную компоновку в макете-макете и макете-порту –

+1

'Я хотел бы повернуть кнопки/текстовые элементы/etc. при изменении ориентации экрана, но я хочу сохранить макет без изменений ». - Не видите ли вы, что вы заявляете« Я хочу использовать новый макет, но я не хочу использовать новый макет »? – mah

+0

Можете ли вы объяснить больше? – breceivemail

ответ

5

Создать res->layout->layout-land и поместить файл XML для режима ландшафта

Вашего файл макет в layout папке только для портретного режима Теперь, если вам нужен пейзаж затем создать layout-land папки.

0

Вы должны изменить параметры макета.

+0

Какие параметры? Я попытался изменить ориентацию макетов на противоположную (при изменении ориентации экрана), но это не сработало. – Ziem

+0

Параметры макета макета. Это возможно, но слишком много работы в java. Но в любом случае, проверьте ответ Самира Мангролии. Это гораздо лучший подход. – mihail

1

Это можно сделать это двумя способами:

1.) Либо вы определяете новый файл XML в layout-land папке.

2.) Используйте android:configChanges="orientation" в вашей деятельности тега внутри Manifest.xml

Тогда в классе деятельности:

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 

    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
     ChangeToLandscape(); 
    } else { 
     ChangeToPortrait(); 
    } 
} 

LayoutParams lp; 
public void ChangeToLandscape() { 
    lp = new LayoutParams(new ViewGroup.MarginLayoutParams(
      LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 
    textView1.setLayoutParams(lp); 
    lp.setMargins(0, 0, 0, 0); // Whatever you want 
    // Similar for other views 
} 

//Similarly, implement `ChangeToPortrait()` 

Надеется, что это помогает !!!

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