El último teléfono inteligente de Samsung tiene una característica interesante llamada pantalla completa (o en términos de marketing, pantalla infinita ). En este modo, la aplicación también cubre parte de la pantalla donde se encuentran los botones de inicio/atrás. Las aplicaciones habituales no cubren esta área, dejándola negra. Pero los nativos de Samsung cubren esta área.
Pregunta: ¿cómo lograr este efecto? Quiero decir, ¿qué tipo de declaración de manifiesto o llamada programática (posiblemente la API heredada de Samsung) debo usar?
Para habilitar la compatibilidad con la pantalla completa del nuevo Samsung Galaxy S8 y LG G6, agregue AndroidManifest.xml en el elemento <application> :
<meta-data android:name="android.max_aspect" android:value="2.1" />Donde el valor de 2,1 es la relación de aspecto 18,5:9 (de forma predeterminada, su aplicación tiene una relación máxima predeterminada de 16:9 - 1,86). Más información en: Android Blog .
Como alternativa, puede establecer el siguiente atributo para la aplicación o la actividad:
android:resizeableActivity="true"Porque la documentación dice ( enlace ):
No es necesario establecer una relación de aspecto máxima si el atributo android:resizeableActivity de una actividad está establecido en verdadero. Si su aplicación tiene como objetivo el nivel de API 24 o superior, este atributo se establece de forma predeterminada en verdadero.
para obtener la pantalla completa, debe anular el método onWindowFocusChanged y crear el objeto decorView y agregarle indicadores 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); } }Se puede apagar. Usé este tutorial para mi S8
Cómo habilitar aplicaciones de pantalla completa en Galaxy S8/S8+