这种方法支持4.4以上的系统
在activity初始化前调用,基本思路是 将状态栏设置为透明状态,然后修改颜色
/**
* 设置状态栏颜色
*/
if (VERSION.SDK_INT >= VERSION_CODES.KITKAT) {
// 透明状态栏
getWindow().addFlags(
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
// 透明导航栏
getWindow().addFlags(
WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}
tintManager = new SystemBarTintManager(this);
//激活状态栏
tintManager.setStatusBarTintEnabled(true);
//激活导航栏
tintManager.setNavigationBarTintEnabled(true);
//设置导航栏背景
tintManager.setNavigationBarTintResource(R.drawable.ico);
//设置状态栏背景
tintManager.setStatusBarTintResource(R.drawable.ico);
这样弄会导致actionBar下边的View跑上去了,
所以需要在xml文件中添加 android:fitsSystemWindows="true" 就可以了
导航栏那里还没弄好,有弄过的小伙伴求告知噢
后边附上git的项目,里边有library可以使用
https://github.com/hexiaochun/SystemBarTint