关于Android状态栏一体化

看了很多人写的状态栏一体化的文章,过程过于复杂详细了,之前有看过一篇文章讲的很棒,可惜一时类似题目太多竟然找不到了,于是为了自己也为了他人方便,写一遍自己已经实现并且多次用到项目中的状态栏一体化方法,其中相信大部分都引入的是Github上的Demo项目https://github.com/niorgai/StatusBarCompat

首先是下载项目地址中的library工程,然后关联到项目中,并且添加依赖,AS项目添加依赖,从File-New-New Module中添加项目,作为一个mudule,添加后右键项目添加Add library依赖。

在eclipse中import 导入library项目,然后点击原项目build依赖项目

这时候就可以直接调用相关的类了,在你的项目BaseActivity基类中添加他的方法,这样每个集成了BaseActivity的界面都可以实现:

// 设置状态栏在oncreate方法中

     protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 设置状态栏
setTranslucentStatus(R.color.main_color);

}

/**
* 设置状态栏背景状态
*/
public void setTranslucentStatus(int colorTitler) {
// 判断是否是4.4及以上版本、
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
Window win = getWindow();
WindowManager.LayoutParams winParams = win.getAttributes();
final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
winParams.flags |= bits;
win.setAttributes(winParams);
}
SystemBarTintManager tintManager = new SystemBarTintManager(this);
tintManager.setStatusBarTintEnabled(true);
tintManager.setNavigationBarTintEnabled(true);
tintManager.setNavigationBarTintResource(colorTitler);
tintManager.setStatusBarTintResource(colorTitler);
}

这里需要说明的是,可以改变状态栏的是基于安卓4.4以上的版本,所以要做权限版本判断,另外这里之所以写成这样,是方便界面修改状态栏,虽然大部分界面保持一个主题色,但不代表有个别界面需要修改状态栏颜色,所以写成该方法

另外需要注意的是,在资源文件中,要标明属性值  android:fitsSystemWindows="true"

所有Activity继承BaseActivity,很简单实现状态栏一体化,不需要写的那么复杂

Eclipse需要的library项目下载http://download.youkuaiyun.com/detail/wangyetongsss/9783367(Github分离出来的)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值