android 设置状态栏颜色

一、前言:

这里介绍几种设置状态栏颜色的方法。

fitSystemWindows属性:

1、简单描述:这个一个boolean值的内部属性,让view可以根据系统窗口(如status bar)来调整自己的布局,如果值为true,就会调整view的paingding属性来给system windows留出空间....

2、fitsSystemWindow 默认是true,就是组件都在屏幕内,但是不包括statusBar。设置成false后,整个屏幕都可以放置组件,没有statusBar和window之分。

二、使用:

1. 隐藏状态栏

在onCreate方法里面添加页面状态

//获取屏幕的decorView
View decorView = getWindow().getDecorView();
//设置全屏
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);

2. 修改状态栏的背景(一)

在setContentView();方法 上 方添加代码:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    Window window = getWindow();
//设置修改状态栏
 window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
  //设置状态栏的颜色,和你的app主题或者标题栏颜色设置一致就ok了
   window.setStatusBarColor(getResources().getColor(R.color.umeng_blue));
    }

2. 修改状态栏的背景(二)

  • 1、在setContentView()之前添加:
if (Build.VERSION.SDK_INT >= 21) {
       View decorView = getWindow().getDecorView();
       //设置全屏和状态栏透明          decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
      // 设置状态栏为灰色
     getWindow().setStatusBarColor(Color.parseColor("#696969"));
  // getWindow().setStatusBarColor(Color.TRANSPARENT);
 }
  • 2、在布局文件xml中添加预留任务栏控件
android:fitsSystemWindows="true"

3. 修改状态栏的背景(三)

  • 1、引入jar包
 //万能插件
implementation 'com.blankj:utilcodex:1.25.2'
  • 2、使用:
BarUtils.setStatusBarColor(this,Color.parseColor("#4C64AD"));
  • 3、在布局文件xml中添加预留任务栏控件
android:fitsSystemWindows="true"

你可能感兴趣的:(android 设置状态栏颜色)