Android透明状态栏

2017-03-16  本文已影响65人  SupLuo

透明状态栏效果只支持4.4及以后的系统

  1. 在Activity的onCreate方法中调用下面语句,支持透明状态栏。
    getWindow().getAttributes().flags |= WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
    等同于在values-19文件下申明的主题中增加
    <item name="android:windowTranslucentStatus">true</item>
    通过以上步骤,状态栏背景已经变成透明了,并且Activity的布局内容会显示在状态栏下面。

  2. 将内容移到状态栏以下

    public int getStatusBarHeight() {
        int result = 0;
        int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
        if (resourceId > 0) {
            result = getResources().getDimensionPixelSize(resourceId);
        }
        return result;
    }

完成上面两部之后,内容基本显示正常,但是在4.4上,状态栏的背景颜色是半透明带灰色的,在5.0上是程序的主题色,所以5.0的效果看起来是可以,应该是5.0有所优化。

  1. 解决4.4灰色背景
    。。。
上一篇下一篇

猜你喜欢

热点阅读