2012-10-08 3 views
12

Können wir ein anderes xml für Landschaft und anderes xml für Hochformat haben?Anderes Design für Querformat und Hochformat android

Ich arbeite an einer einfachen App, habe wenige Schaltflächen und Textansichten, die XML sieht gut im Hochformat aus, aber mit dem gleichen XML, wenn ich die Querformatausrichtung überprüfe, sieht das Design nicht gut aus.

Irgendwelche Vorschläge werden geschätzt .. Danke.

Antwort

34

Ja natürlich.

Sie müssen zwei Versionen von XML-Dateien erstellen und legen Sie Layout-Port und Layout-Land-Ordner in res-Ordner.

zB:

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

Sie können weiter mehr auf dem gleichen verweisen auf http://developer.android.com/training/basics/supporting-devices/screens.html

+0

Leider helfen! Vielen Dank! funktioniert gut! :) – Aadi

5

Wenn Sie ein anderes Layout für Landschaft machen wollen es dann setzen in

res -> layout-land Ordner.

Die beiden Namen des xml müssen identisch sein und werden für Hoch- und Querformat verwendet.

+0

Entschuldigung für die späte Antwort! Danke vielmals ! :) – 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

versuchen, einige Erklärung hinzuzufügen, anstatt nur Code-Schnipsel als Antwort – user2720864

+0

hinzuzufügen Sollte nicht dieser Code in onStart() sein? Ich glaube nicht, dass onCreate() beim Drehen des Gerätes aufgerufen wird. –

+0

Al Lelopath, wenn ein Gerät gedreht wird, ist die Aktivität vollständig entfernt. OnDestroy wird aufgerufen, dann wird die Aktivität neu gestartet. Also ja, onCreate wird erneut aufgerufen – jb15613