Sistem çubuklarını karartma

Bu derste, Android 4.0 (API düzeyi 14) ve sonraki sürümlerde sistem çubuklarının (yani durum ve gezinme çubuklarının) nasıl parlaklığı azaltılacağı açıklanmaktadır. Android, önceki sürümlerde sistem çubuklarını karartmak için yerleşik bir yol sağlamaz.

Bu yaklaşımı kullandığınızda içerik yeniden boyutlandırılmaz ancak sistem çubuklarındaki simgeler görsel olarak küçültülür. Kullanıcı ekranın durum çubuğuna veya gezinme çubuğu alanına dokunur dokunmaz her iki çubuk da tamamen görünür hale gelir. Bu yaklaşımın avantajı, çubukların hâlâ mevcut olması ancak ayrıntılarının belirsiz olmasıdır. Böylece, çubuklara kolay erişimden ödün vermeden sürükleyici bir deneyim sunulur.

Durum ve Gezinme Çubuklarını karartma

Durum ve gezinme çubuklarını SYSTEM_UI_FLAG_LOW_PROFILE işaretini kullanarak aşağıdaki gibi karartabilirsiniz:

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

Kullanıcı durum veya gezinme çubuğuna dokunur dokunmaz bayrak silinir ve çubuklar karartılır. İşaret temizlendikten sonra, çubukları tekrar karartmak istiyorsanız uygulamanızın işareti sıfırlaması gerekir.

Şekil 1'de, gezinme çubuğunun karartıldığı bir galeri resmi gösterilmektedir (Galeri uygulamasının durum çubuğunu tamamen gizlediğini, ancak karartmadığını unutmayın). Gezinme çubuğunun (görüntünün sağ tarafında) üzerinde gezinme denetimlerini temsil etmek için soluk renkli beyaz noktalar bulunduğuna dikkat edin:

sistem çubukları

Şekil 1. Sistem çubukları karartıldı.

Şekil 2'de aynı galeri resmi, ancak sistem çubukları görüntülenmemiş şekilde gösterilmiştir:

sistem çubukları

2. Şekil. Görünür sistem çubukları.

Durum ve Gezinme Çubuklarını Göster

setSystemUiVisibility() ile ayarlanan işaretleri programlı bir şekilde temizlemek isterseniz bunu aşağıdaki şekilde yapabilirsiniz:

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