studio programacion poner pantalla navegador modo juegos inmersivo completa como android android-activity fullscreen android-fullscreen

programacion - pantalla completa android sin root



aplicaciĆ³n de pantalla completa de android (8)

Tengo dos preguntas:

  1. uno cómo puedo ejecutar mi aplicación en pantalla completa
  2. cómo los reproductores de video ejecutan videos en pantalla completa.

He intentado mucho y todavía estoy luchando para lograr esto, pero no pude encontrar una solución.

la lista de soluciones que encontré pero que no están cumpliendo con mis requisitos

  • esto oculta solo la barra de notificaciones.

    requestWindowFeature(Window.FEATURE_NO_TITLE);

    getWindow (). setFlags (WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

  • también oculta solo la barra de notificaciones

    android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

  • baja perfila la barra de navegación sin ocultarlo.

    getWindow (). getDecorView (). setSystemUiVisibility (View.SYSTEM_UI_FLAG_LOW_PROFILE);

  • no hay efecto en mi actividad.

    anyView.setSystemUiVisibility (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

tenga en cuenta que:

  • No estoy hablando de rootear un dispositivo, así que proporcione las soluciones que pueden funcionar sin rootear un dispositivo.
  • No estoy hablando de ocultar solo la barra de notificaciones, sino la pantalla completa al ocultar tanto la barra de navegación como la barra de notificaciones.
  • estoy hablando de jelly beans api 4.1 o superior a la versión 4.1 de Android
  • y por favor da respuestas con el código.

después de mi investigación y sus respuestas, estoy obteniendo esto:

pero mi aplicación debería verse así sin la barra de navegación:

No quiero que la barra de navegación del sistema esté visible en mi aplicación.


Creo que no puedes ocultar la barra del sistema en Android 4.0> (solo en tabletas, en teléfonos que deberías poder)

Lo que puedes hacer es ocultar los iconos y desactivar algunos botones (todos excepto el hogar)

Puedes intentar esto:

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH) { getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE); }

También para deshabilitar los botones:

Esto es para el botón Atrás:

public boolean onKeyDown(int keyCode, KeyEvent event) { return false; }

Esto para el menú:

@Override public void onWindowFocusChanged(boolean hasFocus) { try { if(!hasFocus) { Object service = getSystemService("statusbar"); Class<?> statusbarManager = Class.forName("android.app.StatusBarManager"); Method collapse = statusbarManager.getMethod("collapse"); collapse .setAccessible(true); collapse .invoke(service); } } catch(Exception ex) { } }


Hice 2 diseños, uno para el tamaño normal y el otro para la pantalla completa y dentro del scrreen completo, recibí el tamaño de los dispositivos y se lo asigné al reproductor de video

Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getRealSize(size); int w=size.x; int h=size.y; videoPlayer.setFixedSize(w, h);


Los reproductores de video se ejecutan en pantalla completa configurando

myView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

setFlags() antes de setContentView(View)

Esto mostrará la barra del sistema en cualquier interacción del usuario, al igual que los reproductores de video.

Lo más cerca que puede hacer de ejecutar su aplicación a pantalla completa es configurando el modo Lights Out , los botones del sistema aparecerán como puntos .

Para usar el modo de luces apagadas solo use cualquier vista en su actividad y llame

anyView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

Para ocultar la barra de navegación, use esto en su onStart() para que cada vez que llegue a esa actividad esté en modo de pantalla completa .

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

Espero que esto ayude !


ve a tu manifiesto y agrégalo a tu actividad

<activity android:name="yourPackage.yourActivity" android:theme="@android:style/Theme.Black.NoTitleBar">


No estoy seguro de lo que está buscando, pero a continuación se oculta la barra de notificaciones y las teclas de navegación programables (como se ve en los dispositivos Google Nexus), por lo que la aplicación básicamente es "pantalla completa".

Edit2

En Android 4.4 (API 19), Google introdujo el nuevo modo Immersive que puede ocultar el estado y la barra de navegación y permitir una interfaz de usuario verdaderamente a pantalla completa.

// This snippet hides the system bars. private void hideSystemUI() { // Set the IMMERSIVE flag. // Set the content to appear under the system bars so that the content // doesn''t resize when the system bars hide and show. mDecorView.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 // hide nav bar | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar | View.SYSTEM_UI_FLAG_IMMERSIVE); } // This snippet shows the system bars. It does this by removing all the flags // except for the ones that make the content appear under the system bars. private void showSystemUI() { mDecorView.setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); }

Referencia:
https://developer.android.com/training/system-ui/immersive.html

Editar:
Probado en Android 4.3 (API 18) y Android 4.1 (API 16) con teclas de navegación suave.

@Override protected void onCreate(Bundle b) { super.onCreate(b); setContentView(R.layout.main); int mUIFlag = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LOW_PROFILE | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION; getWindow().getDecorView().setSystemUiVisibility(mUIFlag); }

Para obtener más información, lea en http://developer.android.com/reference/android/view/View.html#setSystemUiVisibility(int)


En el nuevo Android 4.4 debes agregar esta línea:

View.SYSTEM_UI_FLAG_IMMERSIVE;

Así que la nueva solución de trabajo al menos en nexus4 4.4.2 es

final int mUIFlag = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LOW_PROFILE | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE;

Immersive solo no funcionará, aunque funciona cuando se combina con otras banderas. ver documentación para más detalles. Luego agregas en la actividad la activación de esta configuración como se muestra aquí antes (solo estoy agregando para la consistencia)

getWindow().getDecorView().setSystemUiVisibility(mUIFlag);


-Para ocultar la barra de estado:

Una gran solución que encontré para ese problema, estableciendo cada theme Actividad & windowSoftInputMode a los siguientes valores:

<activity android:name=".MyActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:windowSoftInputMode="adjustResize"> <!-- theme : to set the activity to a full screen mode without a status bar(like in some games) --> </activity> <!-- windowSoftInputMode : to resize the activity so that it fits the condition of displaying a softkeyboard -->

para más información, consulte aquí .

-Para ocultar la barra de notificaciones:

Hay dos formas:

1- Rootee su dispositivo, luego abra el dispositivo en el adb window command y luego ejecute lo siguiente:

adb shell > su > pm disable com.android.systemui >

y para recuperarlo solo haz lo mismo pero cambia la disable de disable para enable .

2- agregue la siguiente línea al final del archivo build.prop de su dispositivo:

qemu.hw.mainkeys = 1

luego, para recuperarlo, simplemente quítalo.

y si no sabes cómo editar el archivo build.prop :

  • descargue EsExplorer en su dispositivo y busque build.prop, luego cambie sus permisos para leer y escribir y, finalmente, agregue la línea.
  • descargue una aplicación de edición especializada build.prop como build.propEditor .
  • o refiérase a ese enlace .

Versión de Android: 4.2.2 - Dispositivo: Vega Tablet

Aplicación de Android para ocultar el estado y la barra del sistema y mostrar la pantalla completa seguí estos pasos.

AndroidManifest.xml

<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name"> <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>

MainActivity.java

super.onCreate(savedInstanceState); getWindow().getDecorView().setSystemUiVisibility(0x10); setContentView(R.layout.activity_main);

El código anterior funciona perfectamente para mi aplicación.