2011-09-23 4 views
13

Voglio eseguire un'applicazione di esempio Hello World solo in modalità orizzontale sul mio dispositivo.Eseguire l'applicazione solo in modalità orizzontale?

Se il dispositivo è cambiato in verticale, vorrei sollevare un tostapane. Ad esempio "per favore passa alla modalità orizzontale per eseguire l'applicazione".

Come devo fare?

risposta

37

Si può andare sia a livello di codice come segue:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

o anche in file manifesto si può dare qui come

<activity android:name=".YourActivity" android:screenOrientation="landscape" android:configChanges="keyboardHidden|orientation"/> 
+1

grande ans ....... @ android Killer: – pratik

8

aggiungere questo per il tag attività nel file manifest:

android:screenOrientation="landscape" 

Si risolverà l'orientamento alla modalità orizzontale e non bisogno di mostrare qualsiasi brindisi a utente.

0

È possibile utilizzare la configChanges -attribute per l'attività che si desidera catturare il cambiamento dello schermo-orientamento.

Successivamente, lo onConfigurationChanged()-method nella propria attività verrà chiamato quando l'orientamento cambia.

Per controllare che l'orientamento attualmente visualizzata, controllare il più vecchio: Check orientation on Android phone

Dopo di che, si può mostrare il vostro messaggio o fare quello che vuoi (ovviamente si può anche impostare l'unica manifestazione nel paesaggio) .

0

Si può provare qualcosa di simile

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth(); 
int height = display.getHeight(); 

Log.v("log_tag", "display width is "+ width); 
Log.v("log_tag", "display height is "+ height); 

if(width<height){ 
    Toast.makeText(getApplicationContext(),"Device is in portrait mode",Toast.LENGTH_LONG).show(); 
} else { 
    Toast.makeText(getApplicationContext(),"Device is in landscape mode",Toast.LENGTH_LONG).show(); 
}