直播app源码,状态栏和导航栏设置成透明状态

直播app源码,状态栏和导航栏设置成透明状态实现的相关代码

设置页面透明,使用主题

注册activity设置主题

 

1
<br> <style name="TranslucentNoActionBarTheme" parent="Theme.AppCompat.NoActionBar"><br>        <item name="windowActionBar">false</item><br>        <item name="android:windowContentTransitions">true</item><br>        <item name="android:windowBackground">@android:color/transparent</item><br>        <item name="android:windowIsTranslucent">true</item><br>    </style>

设置状态栏和导航栏透明

直接调用下面方法,传当前activity即可

 

1
<br>public void setNavAndStatusBarTransparent(Activity activity) {<br>        if (activity == null) {<br>            return;<br>        }<br>        try {<br>            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {<br>                Window window = activity.getWindow();<br>                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {<br>                    if (window != null) {<br>                        View decorView = window.getDecorView();<br>                        //两个 flag 要结合使用,表示让应用的主体内容占用系统状态栏的空间<br>                        int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN<br>                                | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;<br>                        decorView.setSystemUiVisibility(option);<br>                        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);<br>                        window.setStatusBarColor(Color.TRANSPARENT);<br>                        //导航栏颜色也可以正常设置<br>                        window.setNavigationBarColor(Color.TRANSPARENT);<br>                    }<br>                } else {<br>                    if (window != null) {<br>                        WindowManager.LayoutParams attributes = window.getAttributes();<br>                        if (attributes != null) {<br>                            int flagTranslucentStatus = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;<br>                            int flagTranslucentNavigation = WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION;<br>                            attributes.flags |= flagTranslucentStatus;<br>                            attributes.flags |= flagTranslucentNavigation;<br>                            window.setAttributes(attributes);<br>                        }<br>                    }<br>                }<br>            }<br>        } catch (Exception e) {<br>            e.printStackTrace();<br>        }<br>    }

 

设置activity点击事件透传

注意要在onCreate方法的setContenView前添加如下代码

 

1
<br>//设置activity点击透传<br>  WindowManager.LayoutParams layoutParams = getWindow().getAttributes();<br>  layoutParams.flags = WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS |<br>                    WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;<br>   

       

以上就是 直播app源码,状态栏和导航栏设置成透明状态实现的相关代码,更多内容欢迎关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(173)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示