2016-09-06 24 views
9

chciałbym zmienić kolor podświetlonego paska w Android Studio:Jak zmienić kolor paska stanu w systemie Android?

enter image description here

W jaki sposób można to zrobić?

+0

Mówisz o pasku stanu lub dolnym pasku telefon lub coś innego? proszę być bardziej konkretnym – KDeogharkar

+1

@KDeogharkar Obraz opowiada wszystko. Nie znam terminologii. – Humty

+0

ohk Nie jestem w stanie tego zobaczyć. imgur to blok z mojego końca .my błąd – KDeogharkar

Odpowiedz

17

Można go zmienić poprzez ustawienie atrybutu stylu używasz dla swojej aplikacji android:statusBarColor lub android:colorPrimaryDark w styles.xml.

(android:statusBarColor dziedziczy wartość android:colorPrimaryDark domyślnie)

Na przykład (skoro jesteśmy przy użyciu motywu AppCompat tutaj, przestrzeń nazw android jest pominięta):

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="colorPrimaryDark">@color/your_custom_color</item> 
</style> 

na poziomie API 21+ możesz również użyć metody Window.setStatusBarColor() z kodu.

-2

Uwaga: - Kolor paska stanu jest obsługiwany na poziomie api na poziomie 19 lub 21 i wyższym.
Proszę sprawdzić ten link: change status bar color

1
<item name="colorPrimaryDark">@color/your_color</item> 

będzie widoczny tylko w Lollipop i powyżej (API) urządzeń lizak. P.S. musisz mieć Theme.AppCompat jako swój podstawowy/główny motyw

11

Pasek stanu to okno systemowe, którego właścicielem jest system operacyjny. Na urządzeniach z systemem Android w wersji wcześniejszej niż 5.0 aplikacje nie mają uprawnień do zmiany koloru, więc nie jest to coś, co biblioteka AppCompat może obsługiwać dla starszych wersji platform. Najlepszym rozwiązaniem, które może wykonać AppCompat, jest obsługa kolorowania obiektów ActionBar i innych popularnych widżetów interfejsu użytkownika w aplikacji.

Na urządzeniach z systemem Android po wersji 5.0, Zmiana koloru paska stanu wymaga również ustawienia dwóch dodatkowych flag w oknie; musisz dodać flagę FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS i wyczyścić flagę FLAG_TRANSLUCENT_STATUS.

Window window = activity.getWindow(); 

// clear FLAG_TRANSLUCENT_STATUS flag: 
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 

// add FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS flag to the window 
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 

// finally change the color 
window.setStatusBarColor(activity.getResources().getColor(R.color.my_statusbar_color)); 
2

Można także dodać te linie kodu w główny

if (Build.VERSION.SDK_INT >= 21) { 
     getWindow().setNavigationBarColor(ContextCompat.getColor(this, R.color.dark_nav)); // Navigation bar the soft bottom of some phones like nexus and some Samsung note series 
     getWindow().setStatusBarColor(ContextCompat.getColor(this,R.color.statusbar)); //status bar or the time bar at the top 
     } 
Powiązane problemy