基于SystemBarTint快速打造沉浸式状态栏

  之前一直想做一个沉浸式状态栏,可惜并没有时间做。这几天闲下来,就做了一个,开始都一样,不知道怎么实现,于是,各种百度,各种谷歌,终于找到一个沉浸式状态栏的小东西SystemBarTint,这个库可以十分快速的给我打造出沉浸式状态栏。

什么是沉浸式状态栏呢?看图片

没错就是画红线部分。
SystemBarTint库最低只能兼容android 4.4,再低就不兼容咯,具体原因,自己谷歌去。下面来讲讲怎么实现沉浸式状态栏
1.先下载我后面提供的依赖包,将里面的SystemBarTintManager拷贝到你的项目中去。
2.新建一个BaseAcivity继承自actity,这样的好处是每个要实现沉浸式状态栏的去继承一下BaseActivity就可以达到效果。
3.在BaseActivity实现沉浸式,直接把下面的代码复制到OnCreate里面

    public class BaseActivity extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
         /**sdk版本判断,判断是否大于4.4*/
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.KITKAT) {
              //去除默认黑色状态栏
                setTranslucentStatus(true); }
            /**新建状态栏管理类*/
     SystemBarTintManager tintManager = new SystemBarTintManager(this);

            /**为true状态栏可见,否则透明*/
            tintManager.setStatusBarTintEnabled(true);
            /**状态栏颜色设置**/     tintManager.setStatusBarTintResource(R.color.colorPrimary);
            }
     @TargetApi(19)
        private void setTranslucentStatus(boolean on) {
            Window win = getWindow();
            WindowManager.LayoutParams winParams = win.getAttributes();
            final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
            if (on) {
                winParams.flags |= bits;
            } else {
                winParams.flags &= ~bits;
            }
            win.setAttributes(winParams);
        }

}

4 .上述实现了通用的状态栏咯,注释都已标清,至于SystemBarTintManager管理类,有兴趣的也可以去看看。
5.接下来我们就要把沉浸式状态栏放到界面上显示一下,看一下行不行咯。创建项目时里面有个MainActivity把。我们改变他的继承对象,使他继承自BaseActivity把。

public class MainActivity extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

}

其他的什么也不用改。直接运行,就可以我们期待的效果咯,是不是好快啊,来来来,我们看一下我写的demo的效果吧。
基于SystemBarTint快速打造沉浸式状态栏_第1张图片
代码下载地址http://download.csdn.net/detail/qq_29282475/9453493

你可能感兴趣的:(基于SystemBarTint快速打造沉浸式状态栏)