当Android 4.4 KitKat发布的时候,每个人都很兴奋看到新的半透明状态栏和导航栏,这确实提高了安卓系统的美感, 我也是被很多这样的应用吸引,试着实现这样沉浸式的效果,看下效果图更直观。

完成这样的效果很简单,GitHub上已经实现对应的

首先,Studio下添加依赖或者引入相应的jar文件。

compile 'com.readystatesoftware.systembartint:systembartint:1.0.3'

其次,在Activity中加入如下代码:

public void initSystemBarTint(boolean on, int res) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        setTranslucentStatus(on);
        SystemBarTintManager tintManager = new SystemBarTintManager(this);
        tintManager.setStatusBarTintEnabled(on);
        tintManager.setStatusBarTintResource(res);
    }
}

private void setTranslucentStatus(boolean on) {
    Window win = getWindow(); WindowManager.LayoutParams winParams = win.getAttributes();
    int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
    if (on) {
        winParams.flags |= bits;
    } else {
        winParams.flags &= ~bits;
    }
    win.setAttributes(winParams);
}

最后,在对应Activity的根布局中加入下面的属性即完成。

android:fitsSystemWindows=”true”