2012-10-08 13 views
12

Czy możemy mieć inny xml dla krajobrazu i różnych xml dla orientacji pionowej?Różne wersje dla orientacji pionowej i poziomej Android

Pracuję nad prostą aplikacją, mam kilka przycisków i widoków tekstu, xml wygląda dobrze w układzie pionowym, ale z tym samym xml, gdy sprawdzam orientację poziomą, projekt nie wygląda dobrze.

Wszelkie sugestie są mile widziane .. Dziękuję.

Odpowiedz

34

Tak ofcourse.

Będziesz musiał utworzyć dwie wersje plików xml i umieścić w folderze layout-port i folderze layout-land w folderze res.

np

res/layout [Portrait Mode; default] 
main.xml 
res/layout-land [Landscape Mode] 
main.xml 

Można odwołać się jeszcze bardziej na to samo w http://developer.android.com/training/basics/supporting-devices/screens.html

+0

Przepraszamy za opóźnienie w odpowiedzi! Wielkie dzięki! działa świetnie! :) – Aadi

5

Jeśli chcesz mieć inny układ do góry a następnie umieścić go w

res -> layout-land folderu.

Obie nazwy pliku xml muszą być takie same, jak w przypadku portretu i krajobrazu.

+0

Przepraszamy za spóźnioną odpowiedź! Wielkie dzięki ! :) – Aadi

1
public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_screen_orientation_app); 
    if(getResources().getDisplayMetrics().widthPixels>getResources().getDisplayMetrics(). 
      heightPixels) 
     { 
      Toast.makeText(this,"Screen switched to Landscape mode",Toast.LENGTH_SHORT).show(); 
     } 
     else 
     { 
      Toast.makeText(this,"Screen switched to Portrait mode",Toast.LENGTH_SHORT).show(); 
     } 
    } 
+1

spróbuj dodać objaśnienie zamiast dodawać fragment kodu jako odpowiedź – user2720864

+0

Czy ten kod nie powinien być w onStart()? Nie sądzę, że onCreate() jest wywoływana podczas obracania urządzenia. –

+0

Al Lelopath, po obróceniu urządzenia aktywność zostaje całkowicie usunięta. Nazywa się OnDestroy, a następnie Aktywność zostaje wznowiona. Tak, tak, onCreate jest ponownie wywoływana – jb15613