状态栏图标和Android的版本<文本色调23

问题描述:

状态栏在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所要求的是不可能的。 –

您可以使用此方法在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时间等。完全不是状态栏的颜色。 –

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

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

希望它有助于在21加入

+0

这很好,但你应该用API> = 23来使用它。 我刚刚在我的设备上发现了几个应用程序(API = 22),它可以使用此功能。 –