Forzar libgdx de Android en modo inmersivo
Siguiendo los tutoriales de esta página (escritos en 2009) ya no funcionan. Http://www.androidsnippets.com/how-to-make-an-activity-fullscreen
public class FullScreen extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.main); } }
Similarmente, intentar cambiar el tema en android.xml no tiene efecto: android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
- Kindle Fire cambia la resolución de pantalla en algún momento ...
- El deslizador siempre tiene el ancho predeterminado
- Gradle se cuelga en tareas de ejecución: [: android: generateDebugSources
- Error de Google Play Services - Informe de errores Incomprensible
- Multiplicando un vector2 por un escalar (LibGDX)
Aquí hay una captura de pantalla:
Después de limpiar la web durante unas horas, no puedo encontrar ningún artículo que me puede ayudar. Entonces, ¿cómo puedo obtener una pantalla completa inmersiva en la versión 1.5.4 de libgdx?
—- EDIT —- Aquí está el código ahora totalmente funcional:
public class AndroidLauncher extends AndroidApplication { @Override protected void onCreate (Bundle savedInstanceState) { hideSystemUi(); super.onCreate(savedInstanceState); AndroidApplicationConfiguration config = new AndroidApplicationConfiguration(); config.hideStatusBar=true; config.useImmersiveMode=true; initialize(new game(), config); } private void hideSystemUi() { getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE); } }
- No se puede agregar gdx-tools al proyecto libgdx gradle
- No se pueden cargar archivos de sonido LibGdx
- Cómo hacer LibGDX + Android Studio jar archivo?
- ¿Puedo instalar la API de Android más reciente para orientar la versión de API inferior?
- Resultados inesperados implementando desenfoque de movimiento simple en Libgdx
- LibGDX no ejecuta el método render ()
- ¿Es esta la forma correcta de detectar un toque en un rectángulo en LibGdx? No parece estar funcionando para mí
- Libgdx-android: Interceptar la tecla de retroceso y confirmar la salida
Pruebe esto en la actividad de Android:
@Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus) { getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); } }
Tenga en cuenta que esto sólo funcionará en API de nivel 19 o superior.
Lamentablemente no puedo comentar debido a mi actual reputación, sin embargo he encontrado que la adición de:
config.hideStatusBar = true; config.useImmersiveMode = true;
En la clase AndroidLauncher es suficiente para mostrar la aplicación en inmersión sin embargo la aplicación se iniciará en modo estándar y luego actualizar a modo inmersivo, más información sobre el modo de inmersión de Android:
Cuando utiliza el indicador SYSTEM_UI_FLAG_IMMERSIVE_STICKY, un barrido hacia dentro en las áreas de barras del sistema hace que las barras aparezcan temporalmente en un estado semitransparente, pero no se borran las banderas y los oyentes de cambio de visibilidad de UI del sistema no se activan. Las barras se ocultan automáticamente de nuevo después de un breve retraso, o si el usuario interactúa con el centro de la pantalla.
Página de Android sdk
Así que mi conclusión sería que config.useImmersiveMode usar el indicador pegajoso.
En una nota lateral, @TargetApi (Build.VERSION_CODES.HONEYCOMB) tiene que ser agregado al método OnWindowFocusChanged cuando se apunta a una api lvl inferior a 11