web-dev-qa-db-fra.com

Samsung Galaxy S8 en mode plein écran

Le dernier smartphone de Samsung a une fonctionnalité intéressante appelée plein écran (ou en termes marketing affichage à l'infini). Dans ce mode, l'application couvre également une partie de l'affichage où se trouvent les boutons home/back. Les applications habituelles ne couvrent pas cette zone, la laissant noire. Mais les natifs de Samsung couvrent ce domaine.

Question: comment obtenir cet effet? Je veux dire quel type de déclaration manifeste ou d'appel programmatique (peut-être l'API héritée de Samsung) dois-je utiliser?

19
barmaley

Pour activer les nouveaux Samsung Galaxy S8 et LG Prise en charge plein écran G6, ajoutez au fichier AndroidManifest.xml sous <application> élément:

<meta-data Android:name="Android.max_aspect" Android:value="2.1" />

Où la valeur de 2,1 correspond au rapport d'aspect 18,5: 9 (par défaut, votre application utilise par défaut le rapport maximal pour 16: 9 - 1,86). Plus d'informations dans: Blog Android .

Vous pouvez également définir l'attribut suivant pour l'application ou l'activité:

Android:resizeableActivity="true"

Parce que les documentations indiquent ( lien ):

Vous n'avez pas besoin de définir un rapport hauteur/largeur maximal si l'attribut Android: resizeableActivity d'une activité est défini sur true. Si votre application cible le niveau d'API 24 ou supérieur, cet attribut est défini par défaut sur true.

32
Maris B.

pour obtenir le plein écran, vous devez remplacer la méthode onWindowFocusChanged et créer l'objet decorView et y ajouter des drapeaux System_UI.

@Override
    public  void onWindowFocusChanged(boolean  hasFocus){
        super.onWindowFocusChanged(hasFocus);
        View decorView = getWindow().getDecorView();
        if(hasFocus){

        decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    |View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY  // this flag do=Semi-transparent bars temporarily appear and then hide again
                    |View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN  // Make Content Appear Behind the status  Bar
                    |View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION  // it Make Content Appear Behind the Navigation Bar
                    |View.SYSTEM_UI_FLAG_FULLSCREEN  // hide status bar
                    |View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
        }
    }
1
Abubakar