现状
不同的安卓版本以及不同的系统对状态栏的设置方法各不相同。
解决方案
由于不同的手机系统设置各不相同,这里推荐使用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();
}
效果如下: