Riduci la luminosità delle barre di sistema (deprecato)

Questa lezione descrive come attenuare le barre di sistema (ovvero lo stato e le barre di navigazione) su Android 4.0 (livello API 14) e versioni successive. Nelle versioni precedenti, Android non offre un modo integrato per attenuare le barre di sistema.

Con questo approccio, i contenuti non vengono ridimensionati, ma le icone nelle barre di sistema visivamente si ritirano. Non appena l'utente tocca la barra di stato o l'area della barra di navigazione dello schermo, entrambe le barre diventano completamente visibili. Il vantaggio di questo approccio è che le sbarre sono comunque presenti, ma i loro dettagli sono oscurati, creando così un'esperienza immersiva senza sacrificare il facile accesso alle sbarre.

Attenuazione delle barre di stato e di navigazione

Puoi attenuare la luminosità delle barre di stato e di navigazione utilizzando il flag 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 e le barre non sono più attenuate. Una volta cancellato il flag, l'app dovrà reimpostarlo se vuoi attenuare di nuovo le barre.

La Figura 1 mostra un'immagine della galleria in cui la barra di navigazione è oscurata (tieni presente che l'app Galleria nasconde completamente la barra di stato, non la attenua). Nota che sulla barra di navigazione (lato destro dell'immagine) sono presenti lievi puntini bianchi 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.

Visualizzazione delle 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);