Android 6.0状态栏使用灰色文字和图标

作者: 阳春面 | 来源:发表于2015-12-25 23:47 被阅读1625次

Android StatusBar中的字体和图标默认都是白色的,但是Android在6.0之前是没有办法更改这个颜色,
在Android 6.0中提供了一个SYSTEM_UI_FLAG_LIGHT_STATUS_BAR,可以将其颜色改为灰色。

效果如下图所示:

修改状态栏颜色,可以通过以下代码实现:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    getWindow().setBackgroundDrawableResource(R.mipmap.window_bg);
    getWindow().getDecorView().setSystemUiVisibility(
      View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
    getWindow().setStatusBarColor(Color.TRANSPARENT);
 }

另外我们如果需要去除Toolbar的阴影效果,可以通过设置elevation属性修改

<android.support.design.widget.AppBarLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       app:elevation="0dp"
       android:background="@android:color/transparent"
       android:theme="@style/AppTheme.AppBarOverlay">

       <android.support.v7.widget.Toolbar
           android:id="@+id/toolbar"
           android:layout_width="match_parent"
           android:layout_height="?attr/actionBarSize"
           android:background="@android:color/transparent"
           app:popupTheme="@style/AppTheme.PopupOverlay" />
           
</android.support.design.widget.AppBarLayout>

本文作者: 阳春面
作者博客:https://www.aswifter.com/2015/12/24/android-m-change-statusbar-textcolor/

相关文章

网友评论

  • 丶Mdzz:那怎么再把文字颜色改回去呢
  • 佛朗索瓦:多谢,收藏了
  • 606fd5f5448c:请教一下,你是怎么判断设备是android原生系统的。
  • tao:`<item name="android:windowTranslucentStatus">false</item> ` 我试了一下,同时windowTranslucentStatus设置成false才有效果
    阳春面:@tao 是的

本文标题:Android 6.0状态栏使用灰色文字和图标

本文链接:https://www.haomeiwen.com/subject/ndqbhttx.html