最近接触到一个项目,发现了一个实现透明状态栏的第三方jar包,感觉挺好用的,跟大家分享一下。
github地址:https://github.com/jgilfelt/SystemBarTint
AS导入地址:compile ‘com.readystatesoftware.systembartint:systembartint:1.0.3’
在项目中使用时,可以封装成一个方法:
public void change_status_color(Activity activity,int color){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
// 透明状态栏
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
// 获取第三方jar包对象
SystemBarTintManager tintManager = new SystemBarTintManager(activity);
// 激活状态栏设置
tintManager.setStatusBarTintEnabled(true);
// 设置一个颜色给系统栏
tintManager.setTintColor(color);
}
}
帮助文档中涉及的方法:
//获取对象
SystemBarTintManager tintManager = new SystemBarTintManager(this);
//启用状态栏颜色
tintManager.setStatusBarTintEnabled(true);
//启用导航栏颜色
tintManager.setNavigationBarTintEnabled(true);
// 所有系统设置一个自定义色彩颜色
tintManager.setTintColor(Color.parseColor(“#99000FF”));
// 设置一个自定义导航栏的资源
tintManager.setNavigationBarTintResource(R.drawable.my_tint);
// 设置一个自定义状态栏可拉的
tintManager.setStatusBarTintDrawable(MyDrawable);
另附几篇参考文章:
1、鸿洋大神讲解实现透明状态栏(或叫沉浸式状态栏)
http://blog.youkuaiyun.com/lmj623565791/article/details/48649563
2、Android 系统状态栏沉浸式/透明化完整解决方案
http://www.jianshu.com/p/34a8b40b9308