应用主题色扩展到通知栏和不包括通知栏的代码设置
对比图:如图中画圈圈的部分对比
定义一个应用中所有窗口Activity的基类BaseActivity,在其中onCreate方法中运行以下的方法代码如下:
@TargetApi(Build.VERSION_CODES.KITKAT)
protected void setStatusBarTranslucent() {
if ((Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP)
&&(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
&&!(this instanceof SplashActivity)) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
SystemBarTintManager tintManager = new SystemBarTintManager(this);
tintManager.setStatusBarTintEnabled(true);
tintManager.setStatusBarTintResource(R.color.background_main);
}
}
效果如下:
自己练手的例子:
导入依赖:compile 'com.readystatesoftware.systembartint:systembartint:1.0.3'(必要要用到这个东东才能才设置下面的SystemBarTintManager)
public class BaseActvity extends AppCompatActivity{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStatusBarTranslucent();
}
private void setStatusBarTranslucent(){
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
SystemBarTintManager tintManager = new SystemBarTintManager(this);
tintManager.setStatusBarTintEnabled(true);
tintManager.setStatusBarTintResource(R.color.background_main);
setContentView(R.layout.activity_main);
}
}
public class MainActivity extends BaseActvity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
效果如下: