最新的三星智能手机具有一个有趣的功能,称为全屏幕(或在营销术语中称为无限显示)。在此模式下,应用程序也覆盖了主页/返回按钮所在的部分显示区域。通常的应用程序不会覆盖此区域,使其保持黑色。但是三星的原生应用程序会覆盖该区域。
问题:如何实现这种效果?我的意思是,我应该使用什么样的清单声明或编程调用(可能是三星的旧API)?
最新的三星智能手机具有一个有趣的功能,称为全屏幕(或在营销术语中称为无限显示)。在此模式下,应用程序也覆盖了主页/返回按钮所在的部分显示区域。通常的应用程序不会覆盖此区域,使其保持黑色。但是三星的原生应用程序会覆盖该区域。
问题:如何实现这种效果?我的意思是,我应该使用什么样的清单声明或编程调用(可能是三星的旧API)?
为了使新的三星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 Blog。
或者,您也可以为应用程序或活动设置以下属性:
android:resizeableActivity="true"
由于文档说明如下(链接):
如果一个activity的android:resizeableActivity属性设置为true,就不需要设置最大宽高比。 如果您的应用程序的目标API级别为24或更高,则此属性默认为true。
@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);
}
}