美文网首页
Android全屏状态设置

Android全屏状态设置

作者: ByteCarry | 来源:发表于2019-06-10 23:05 被阅读0次

    建议的设置

    设置全屏的方式-系统状态栏(status bar)和Action Bar(操作栏)隐藏

    1. setSystemUiVisibility(int),适合临时性的全屏,例如书籍阅读
    2. 窗口标志-WindowManager.LayoutParams.FLAG_FULLSCREEN,适合持续性的全屏状态,如全屏游戏。

    setSystemUiVisibility(int)

     private final Runnable mHidePart2Runnable = new Runnable() {
            @SuppressLint("InlinedApi")
            @Override
            public void run() {
                // Delayed removal of status and navigation bar
    
                // Note that some of these constants are new as of API 16 (Jelly Bean)
                // and API 19 (KitKat). It is safe to use them, as they are inlined
                // at compile-time and do nothing on earlier devices.
                mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
                        | View.SYSTEM_UI_FLAG_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
            }
        };
    

    View.SYSTEM_UI_FLAG_LOW_PROFILE(Api14)

    View已请求系统UI进入不显眼的“低调”模式。

    这适用于游戏,图书阅读器,视频播放器或任何其他“沉浸式”应用程序,其中通常的系统镶边被视为过分分散注意力。

    在低调模式下,状态栏和/或导航图标可能会变暗。

    View.SYSTEM_UI_FLAG_FULLSCREEN(Api16)

    View已请求进入正常的全屏模式,以便其内容可以接管屏幕(临时性的),同时仍允许用户与应用程序进行交互。

    View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY(Api19)

    当使用SYSTEM_UI_FLAG_FULLSCREEN隐藏状态栏和/或使用SYSTEM_UI_FLAG_HIDE_NAVIGATION隐藏导航栏时,View将保持交互。使用此标志创建身临其境的体验,同时隐藏系统栏。如果未设置此标志,系统将在任何用户交互时强制清除SYSTEM_UI_FLAG_HIDE_NAVIGATION,如果用户从屏幕顶部滑动,SYSTEM_UI_FLAG_FULLSCREEN将被系统强制清除。

    当系统栏以沉浸模式隐藏时,可以通过系统手势临时显示它们,例如从屏幕顶部滑动。这些瞬态系统栏将覆盖应用程序的内容,可能具有一定程度的透明度,并会在短暂超时后自动隐藏。

    由于此标志是SYSTEM_UI_FLAG_FULLSCREEN和SYSTEM_UI_FLAG_HIDE_NAVIGATION的修饰符,因此只有在与这些标志中的一个或两个组合使用时才会起作用。

    View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION(Api16)

    视图希望它的窗口被布置好,就好像它已经请求了SYSTEM_UI_FLAG_HIDE_NAVIGATION一样,即使它现在还没有。 这允许它在切入和切出该模式时避免失真,其代价是它们的一些用户界面在显示时可能被屏幕装饰覆盖。 您可以通过fitSystemWindows(Rect)方法执行内部UI元素的布局来解释导航系统UI。

    View.SYSTEM_UI_FLAG_HIDE_NAVIGATION(Api14)

    View已经请求暂时隐藏系统导航。

    这比SYSTEM_UI_FLAG_LOW_PROFILE调用的状态更不显眼; 在屏幕上绘制基本导航控件(主屏幕,后屏幕等)的设备上,SYSTEM_UI_FLAG_HIDE_NAVIGATION将使其消失。 这非常有用(与FLAG_FULLSCREEN和FLAG_LAYOUT_IN_SCREEN窗口标记一起使用),用于使用显示器上的每个最后一个像素显示内容。

    有一个限制:因为导航控件非常重要,最少的用户交互将导致它们立即重新出现。 发生这种情况时,该标志和SYSTEM_UI_FLAG_FULLSCREEN都会自动清除,以便两个元素同时重新出现。

    显示系统状态栏-

     // Show the system bar
            mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
    

    隐藏系统状态栏

    // Delayed removal of status and navigation bar
    
                // Note that some of these constants are new as of API 16 (Jelly Bean)
                // and API 19 (KitKat). It is safe to use them, as they are inlined
                // at compile-time and do nothing on earlier devices.
                mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
                        | View.SYSTEM_UI_FLAG_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
            }
    
    扫码领红包支持

    相关文章

      网友评论

          本文标题:Android全屏状态设置

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