现状

不同的安卓版本以及不同的系统对状态栏的设置方法各不相同。

解决方案

由于不同的手机系统设置各不相同,这里推荐使用github上的一个成熟的解决方案status-bar-compat

StatusBarCompat是一个用于设置系统状态栏颜色的兼容库,兼容Android 4.4.2(API 19)以上,使用简单,仅需要一行代码的调用。

使用方法

1. 声明仓库

确保在你的根项目的build.gradle中对jcenter的声明:

allprojects {
    repositories {
        jcenter()
    }
}

2. 声明依赖

在你要使用的module的build.gradle文件中声明以下依赖:

   compile 'com.githang:status-bar-compat:0.7'

如果是使用了AS3以上的,修改为:

   api 'com.githang:status-bar-compat:0.7'

 3. 代码调用

最后在你的Activity的setContentView()方法调用之后,调用以下方法即可。

 StatusBarCompat.setStatusBarColor(this, color, lightStatusBar);
//或者是
 StatusBarCompat.setStatusBarColor(this, color);

4. 测试

原来的代码:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
//        StatusBarCompat.setStatusBarColor(this,getResources().getColor(R.color.colorPrimary),false);
        uIInit();
    }

效果如下:

 

在onCreat中添加相关代码

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        StatusBarCompat.setStatusBarColor(this,getResources().getColor(R.color.colorPrimary),false);
        uIInit();
    }

效果如下:

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐