web-dev-qa-db-fra.com

Faire une Android s'exécuter en plein écran et en paysage

J'ai vu certaines applications, en particulier la plupart des jeux (par exemple Angry Birds, Temple Run, etc.) s'exécuter en plein écran et en mode paysage lors de leur lancement. Leur orientation ne change jamais et ils ne quittent jamais le plein écran lorsque l'écran est touché. Comment c'est fait? Quelles propriétés dois-je modifier ou coder?

13
Sunit Prasad

Si vous préférez utiliser XML, vous pouvez modifier le fichier AndroidManifest.xml:

<activity Android:name="..."
    Android:screenOrientation="landscape"
    Android:theme="@Android:style/Theme.NoTitleBar.Fullscreen">

</activity>

Si vous ciblez Android SDK 9 ou supérieur, vous pouvez utiliser sensorLandscape au lieu de landscape, ce qui signifie que l'écran apparaîtra correctement - les deux orientation paysage normale et orientation paysage inversée.

19
Tom Leese
import Android.view.Window;
import Android.view.WindowManager;
import Android.content.pm.ActivityInfo;

@Override public void onCreate(Bundle savedInstanceState)
{
    ...

    // Set window fullscreen and remove title bar, and force landscape orientation
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

    ...
}

Solution à votre problème

7
siranen

Le problème est résolu, et sur la base des réponses données ci-dessus, ce que j'ai fait était,

Étape 1: dans le fichier manifest.xml,

<application
. . .
Android:screenOrientation="landscape"
Android:theme="@Android:style/Theme.NoTitleBar.Fullscreen">
. . .
</application>

Étape 2: dans le fichier Java, j'ai apporté les modifications suivantes,

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
   }

et maintenant mon application fonctionne en plein écran, en mode paysage sans aucun problème. Merci à tous.

4
Sunit Prasad

Mettez ceci dans onCreate() dans chaque classe d'activité (écrans):

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
                                WindowManager.LayoutParams.FLAG_FULLSCREEN);

Ce code désactivera Android (tirez vers le haut). !!!

1
rares