Android設置系統狀態欄顏色--最簡單直接方法

  實現設置系統狀態欄顏色需要至少在Android 4.4.2(API 19)以上。這是因爲,在這個版本以下,沒有任何的API可以幫助我們來實現。

  下面在項目中不需要改代碼更不需要改style文件,更不用爲不同的系統版本創建不同的style文件來實現這個功能?
 完全可以不用,因爲我已經對它做了封裝。你只需要兩步,就可以完成。

一、在項目的build.gradle中聲明以下依賴:

   compile 'com.githang:status-bar-compat:latest.integration'

二、在你的Activity中(最好是setContentView()被調用之後)添加以下代碼:

 

   StatusBarCompat.setStatusBarColor(this, color, lightStatusBar);

就這樣可以使用了。

  後記:

  在Android 6.0設置狀態欄的顏色的方法與上面的一致,慶幸的是,它的設置有效:

        //取消設置透明狀態欄,使 ContentView 內容不再覆蓋狀態欄
        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        //需要設置這個 flag 才能調用 setStatusBarColor 來設置狀態欄顏色
        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        //設置狀態欄顏色
        window.setStatusBarColor(color);
    由於與API 19設置狀態欄半透明並添加一個View的實現方式不同,這裏是直接設置狀態欄的顏色的,所以如果我們的狀態欄被設爲白色的話,上面同樣白色的系統狀態就看不到了。不過,6.0的API新增了一個屬性來解決這一問題。即,如果我們設置的狀態欄顏色是接近於白色的話,可以在主題中添加以下屬性:

   <item name="android:windowLightStatusBar">true</item>
   這樣,系統狀態的那些文字圖標就會變成黑色了
發佈了53 篇原創文章 · 獲贊 8 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章