Riduci la luminosità delle barre di sistema (deprecato)

Questa lezione descrive come attenuare la luminosità delle barre di sistema, ovvero dello stato e barre) su Android 4.0 (livello API 14) e versioni successive. Android non offre un modo integrato per attenuare la luminosità le barre di sistema delle versioni precedenti.

Quando utilizzi questo approccio, i contenuti non vengono ridimensionati, ma le icone nelle barre di sistema ritirarsi visivamente. Non appena l'utente tocca la barra di stato o l'area della barra di navigazione di sullo schermo, entrambe le barre diventano completamente visibili. Il vantaggio di questo approccio è che le barre sono ancora presenti ma i loro dettagli sono oscurati, quindi creando un'esperienza immersiva senza rinunciare a un facile accesso alle barre.

Attenua le barre di stato e di navigazione

Puoi attenuare le barre di stato e di navigazione utilizzando il SYSTEM_UI_FLAG_LOW_PROFILE, come segue:

Kotlin

// This example uses decor view, but you can use any visible view.
activity?.window?.decorView?.apply {
    systemUiVisibility = View.SYSTEM_UI_FLAG_LOW_PROFILE
}

Java

// This example uses decor view, but you can use any visible view.
View decorView = getActivity().getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_LOW_PROFILE;
decorView.setSystemUiVisibility(uiOptions);

Non appena l'utente tocca la barra di stato o di navigazione, il flag viene cancellato, annullando l'attenuazione delle barre. Una volta cancellato il flag, l'app deve essere reimpostata se vuoi attenuare di nuovo le barre.

La Figura 1 mostra un'immagine della galleria in cui la barra di navigazione è attenuata (tieni presente che l'app Galleria nasconde completamente la barra di stato; non la attenua). Nota che la barra di navigazione (destra lato dell'immagine) ha punti bianchi deboli che rappresentano i controlli di navigazione:

barre di sistema

Figura 1. Barre di sistema oscurate.

La Figura 2 mostra la stessa immagine della galleria, ma con le barre di sistema visualizzate:

barre di sistema

Figura 2. Barre di sistema visibili.

Mostra barre di stato e di navigazione

Se vuoi cancellare in modo programmatico i flag impostati con setSystemUiVisibility(), puoi farlo come segue:

Kotlin

activity?.window?.decorView?.apply {
    // Calling setSystemUiVisibility() with a value of 0 clears
    // all flags.
    systemUiVisibility = 0
}

Java

View decorView = getActivity().getWindow().getDecorView();
// Calling setSystemUiVisibility() with a value of 0 clears
// all flags.
decorView.setSystemUiVisibility(0);