您的位置:首页 > 移动开发 > Android开发

Android实战之 4.4版本及以上透明状态栏,兼容5.0及以上

2015-12-28 15:12 567 查看
转载请标明原地址:/article/3623997.html

Android4.4 以前不支持透明状态栏,一条黑感觉和下面应用颜色不搭调,而IOS状态栏则是透明的不存在此问题。英雄所见略同,Android4.4以后就支持了。Android和IOS也要互相学习!毕竟是虚心使人进步,骄傲使人落后啊!在一阵狂搜后,发现大多数人的不太理想,非常幸运的是在万人之中还是遇到了对的人。其实代码挺简单的,下面总结一下。

实现4.4以上透明状态栏,需要加如下代码:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            window.setFlags(
                    WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
                    WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        }


xml中要加入
android:background="@color/color_dc353b"
    android:fitsSystemWindows="true"
4.4效果图:



5.0及以上效果图:



5.0及以上状态栏颜色会比标题栏颜色较深。如何解决呢?

需要加入如下代码:

//5.0版本及以上
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
                    | WindowManager.LayoutParams.FLAG_TRANSLUCENT_N***IGATION);
            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_N***IGATION
                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
            window.setStatusBarColor(Color.TRANSPARENT);
            window.setNavigationBarColor(Color.TRANSPARENT);
        }


处理后5.0及以上效果图和4.4及以上一样,如下:



源码地址,点击下载......
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: