美文网首页
Android透明状态栏

Android透明状态栏

作者: SupLuo | 来源:发表于2017-03-16 00:04 被阅读65次

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

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

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

  • 利用状态栏的高度
    在Activity布局文件的根节点上添加paddingTop,大小为状态栏高度。
    具体做法,在values目录下创建一个root_padding_top(变量名,名字根据需求取)变量,值为0dp;在values-19下创建同样一个变量,值为25dp
    为什么是25dp,可以查看源代码,也可以使用以下代码获取状态栏高度(标注:我在自己的vivo x6s上获取的高度为69px,转换成dp为23)
    public int getStatusBarHeight() {
        int result = 0;
        int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
        if (resourceId > 0) {
            result = getResources().getDimensionPixelSize(resourceId);
        }
        return result;
    }
  • 使用android:fitsSystemWindows="true"
    在Activity布局文件的根结点上添加上述语句即可使内容显示在状态栏以下。

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

  1. 解决4.4灰色背景
    。。。

相关文章

  • Flutter 开发常见 tips

    1.Android 手机设置状态栏透明 如果想实现在 Android 手机上实现透明状态栏的需求,可以在 main...

  • Android面试题整理

    一、View树/View的绘制流程Android View的绘制流程 二、透明状态栏Android 系统状态栏沉浸...

  • AndroidView

    Android 沉浸式 (透明) 状态栏适配 Android 沉浸式状态栏仿淘宝、京东拖拽商品详情(可嵌套View...

  • 沉浸式效果

    Android 5.0 设置状态栏全透明,将布局顶到status bar上 StatusBarUtil 状态栏工具...

  • Android 沉浸式状态栏

    关于如何实现Android透明状态栏的总结 - 简书

  • 沉浸式

    google在Android4.4以后提供了设置沉浸式状态栏的方法 true 设置状态栏为透明android:fi...

  • Android 沉浸式状态栏原理

    首先: android 的透明状态栏和沉浸式是两个不同的东西,但是又相互交错,不要混淆。透明状态栏是指将状态栏设置...

  • 透明statusbar的一些小建议

    大家都知道android4.4出现了沉浸式状态栏一说,5.0以上则是透明状态栏,其实呢都是透明状态栏。最近公司要求...

  • Github上最好用的 Android 状态栏导航栏库分享,没有

    从 Android 4.4 开始,Android 支持了状态栏和导航栏的透明效果,并在 Android 5.0 上...

  • Android 状态栏导航栏库分享

    从 Android 4.4 开始,Android 支持了状态栏和导航栏的透明效果,并在 Android 5.0 上...

网友评论

      本文标题:Android透明状态栏

      本文链接:https://www.haomeiwen.com/subject/lhtdnttx.html