Je souhaite que mon application Android ne s'exécute qu'en mode portrait? Comment puis je faire ça?
Dans le manifeste, définissez ceci pour toutes vos activités:
<activity Android:name=".YourActivity"
Android:configChanges="orientation"
Android:screenOrientation="portrait"/>
Laissez-moi expliquer:
Android:configChanges="orientation"
vous dites Android que vous serez responsable des changements d’orientation.Android:screenOrientation="portrait"
vous définissez le mode d'orientation par défaut.Dans Android Fichier manifeste, mettez l'attribut pour votre <activity>
que Android:screenOrientation="portrait"
Il y a deux façons
Android:screenOrientation="portrait"
pour chaque activité du fichier manifestethis.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
dans chaque fichier Java.Ancien post je sais. Pour que votre application fonctionne toujours en mode portrait même lorsque l'orientation peut être ou est intervertie, etc. (par exemple sur des tablettes), j'ai conçu cette fonction qui permet de définir le périphérique dans la bonne orientation sans avoir besoin de savoir comment le portrait et le paysage les fonctionnalités sont organisées sur l'appareil.
private void initActivityScreenOrientPortrait()
{
// Avoid screen rotations (use the manifests Android:screenOrientation setting)
// Set this to nosensor or potrait
// Set window fullscreen
this.activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
DisplayMetrics metrics = new DisplayMetrics();
this.activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
// Test if it is VISUAL in portrait mode by simply checking it's size
boolean bIsVisualPortrait = ( metrics.heightPixels >= metrics.widthPixels );
if( !bIsVisualPortrait )
{
// Swap the orientation to match the VISUAL portrait mode
if( this.activity.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT )
{ this.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); }
else { this.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT ); }
}
else { this.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR); }
}
Fonctionne comme un charme!
AVIS: Modifiez this.activity
par votre activité ou ajoutez-la à l'activité principale et supprimez this.activity
;-)