三星银河S8全屏模式

最新的三星智能手机具有称为全屏(或营销术语无限显示)的有趣功能。在此模式下,应用程序还涵盖了主页/后退按钮所在的部分显示。通常的应用程序不会覆盖此区域,而是将其保留为黑色。但三星的原生产品覆盖了这一领域。

问:如何达到这个效果?我的意思是我应该使用哪种清单声明或编程调用(可能是三星的旧版API)?


答案 1

要启用新的三星Galaxy S8和LG G6全屏支持,请添加到AndroidManifest.xml元素下:<application>

<meta-data android:name="android.max_aspect" android:value="2.1" />

其中值 2.1 表示纵横比 18.5:9(默认情况下,你的应用默认为 16:9 - 1.86 的最大比率)。更多信息见:安卓博客

或者,您可以为应用程序或活动设置以下属性:

android:resizeableActivity="true"

因为文档指出(链接):

如果活动的 android:resizeableActivity 属性设置为 true,则无需设置最大纵横比。如果您的应用以 API 级别 24 或更高版本为目标,则此属性默认为 true。


答案 2

要获得全屏,您必须覆盖windowFocusChanged方法并创建装饰视图对象并在其中添加System_UI标志。

@Override
    public  void onWindowFocusChanged(boolean  hasFocus){
        super.onWindowFocusChanged(hasFocus);
        View decorView = getWindow().getDecorView();
        if(hasFocus){

        decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    |View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY  // this flag do=Semi-transparent bars temporarily appear and then hide again
                    |View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN  // Make Content Appear Behind the status  Bar
                    |View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION  // it Make Content Appear Behind the Navigation Bar
                    |View.SYSTEM_UI_FLAG_FULLSCREEN  // hide status bar
                    |View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
        }
    }

推荐