2016-07-24 72 views
2

狀態欄在Android的默認色調是白色的(所以它某種soppos的是狀態欄會發暗): enter image description here I've found我可以在Android的改變色調版本大於或等於23. 但後來我發現我的設備上有幾個應用程序(Android 5.1,API 22)使用黑色色調。他們是怎麼做到的?狀態欄圖標和Android的版本<文本色調23

更新: 這就是我的意思是: 一些其他的應用程序具有光狀態欄和黑色圖標,時間標籤等。

enter image description here

這是我的應用程序樣本與白色狀態欄:

enter image description here

我無法設置windowLightStatusBar爲真,使它看起來像從第一張圖片中的應用程序與設備API < 23.

+0

setStatusBarColor,而不是23所以他們使用您的手機上。 –

+0

@GabeSechan setStatusBarColor只能設置我的狀態欄的顏色,而不是它的圖標色調。所以會有白色的狀態欄,上面有白色的圖標和文字(我現在有這種情況)。 要打開黑色色調,您必須使用windowLightStatusBar(API 23) –

+0

您將不得不顯示一些截圖,因爲按照標準方法afaik所要求的是不可能的。 –

回答

0

您可以使用此方法在kitkat和棒棒糖及以上設備中給出statusBar自己的顏色

public void translucentStatusBar() { 

      if(Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) { 
       getWindow().setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, 
         WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 
      } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
       getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); 
       getWindow().setStatusBarColor(Color.TRANSPARENT); 
      } 

      View view = findViewById(R.id.vFakeStatusBar); 
      view.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, 
        (int) getResources().getDimension(R.dimen.default_status_bar_height))); 
     } 

在高度24dp(默認)的statusBar中的上述代碼段視圖中。

+1

謝謝你的幫助,但我的意思是文本的顏色,圖標,battary時間等。完全不是狀態欄的顏色。 –

0

this答案,加入values-v23/style.xml

<item name="android:windowLightStatusBar">true</item> 

希望它有助於在21加入

+0

這很好,但你應該用API> = 23來使用它。 我剛剛在我的設備上發現了幾個應用程序(API = 22),它可以使用此功能。 –