android沉浸式状态栏的总结

2017-08-28  本文已影响0人  地板流

总结:
1.从android4.4版本开始可以实现沉浸式状态栏的功能,4.4和5.0以上的效果会有点不一样,所以可以选择使用在view来代替状态栏背景,这样就一致了;
2.在白色背景的情况下默认状态栏是白色,需要设置状态栏和图标颜色,而在6.0以上则是可以设置状态栏的图标字体的颜色的,然而魅族和小米是有另外自己的字体修改api的,所以这个修改字体深浅需要原生和魅族小米三个一起设置;

3.在代码中实现上述代码是因为国内有些 rom 如果单纯在 style 文件中设置 windowTranslucentStatus 可能导致设置无效。所以在 Activity 中再次设置一遍 。
4.单单设置windowTranslucentStatus 只是半透明的效果,有的机型是灰色的半透明,有的则是全透明,单独设置状态栏颜色,可使用以下代码实现沉浸式效果:

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
            getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
//            getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            getWindow().setStatusBarColor(Color.TRANSPARENT);// SDK21

5.在5.0以后可以通过设置主题颜色来设置一些app的默认颜色;
以下是一张主题颜色的图片:


颜色.png
上一篇下一篇

猜你喜欢

热点阅读