¿Cómo configurar el diálogo para mostrar en pantalla completa? [cerrado]


129

Tengo un GridView y quiero hacer una implementación de un diálogo, en el que la imagen que he seleccionado debería aparecer en pantalla completa.

Entonces, ¿cómo puedo hacer que el cuadro de diálogo se muestre en modo de pantalla completa? ¡Gracias!


2
Si desea utilizar una PANTALLA COMPLETA Dialog, ¿por qué no utilizar el valor predeterminado ACTION_VIEW Intentpara los archivos de imagen?
Will Tate

lo siento, quiero decir casi a pantalla completa o imagen completa
user790156

3
Junto con la respuesta a willytate si tiene que dialogar, use android.R.style.Theme_Translucent_NoTitleBar_Fullscreen en el tema
ingsaurabh


3
@MartinPfeffer también tengo una sugerencia para el futuro usuario, pero la pregunta cerrada Andrew Barber no es de la comunidad de Android. Esta es realmente una pregunta simple que los nuevos desarrolladores de Android siempre tienen curiosidad sobre esto. esta pregunta debería estar abierta nuevamente para obtener mejores respuestas y futuros usuarios
Abhishek Singh

Respuestas:


228

tratar

Dialog dialog=new Dialog(this,android.R.style.Theme.Black.NoTitleBar.Fullscreen)

29
Para que esto funcione para mí, tuve que usar android.R.style.Theme_Black_NoTitleBar_Fullscreen
Ben Clayton

44
Call requires API level 11
Luis A. Florit

1
@ LuisA.Florit pruebe Theme_Black_NoTitleBar_Fullscreen
Felipe Caldas

21
¿Qué pasa con la pantalla completa con una barra de título?
Heath Borders el

1
Cuando hago esto (usando DialogFragment) veo que el diálogo elimina el color de la barra de estado, toda la pantalla es el color de fondo del diálogo. ¿Alguien sabe de alguna solución? Intenté establecer el statusBarColor de la ventana del cuadro de diálogo, sin ningún efecto. PD: el color de la barra de navegación también se mata.
androidguy

83

basado en este enlace , la respuesta correcta (que he probado yo mismo) es:

pon este código en el constructor o el onCreate()método del diálogo:

getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT,
                WindowManager.LayoutParams.MATCH_PARENT);

Además, establezca el estilo del cuadro de diálogo en:

<style name="full_screen_dialog">
    <item name="android:windowFrame">@null</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
</style>

Esto podría lograrse a través del constructor, por ejemplo:

public FullScreenDialog(Context context)
{
  super(context, R.style.full_screen_dialog);
  ...

EDITAR: una alternativa a todo lo anterior sería establecer el estilo en android.R.style.Theme y listo.


55

La forma más fácil que encontré

Dialog dialog=new Dialog(this,android.R.style.Theme_Black_NoTitleBar_Fullscreen);
        dialog.setContentView(R.layout.frame_help);
        dialog.show();

1
gracias, esta fue realmente la forma más fácil!
CommonSenseCode

1
¡Trabajado como un encanto!
Enlace 88

1
Excelente. Funciona perfectamente
Jevgenij Kononov

¡Esto es perfecto! Debería ser la solución aceptada.
AmeyaB

no se puede cambiar el color de fondo, todavía negro
Jemshit Iskenderov

42

EDITAR Hasta que StackOverflow nos permita versionar nuestras respuestas, esta es una respuesta que funciona para Android 3 y versiones posteriores. Por favor, no lo rechace porque no funciona para usted ahora, porque definitivamente funciona con versiones anteriores de Android.


Solo debe agregar una línea a su onCreateDialog()método:

@Override
protected Dialog onCreateDialog(int id) {
    //all other dialog stuff (which dialog to display)

    //this line is what you need:
    dialog.getWindow().setFlags(LayoutParams.FLAG_FULLSCREEN, LayoutParams.FLAG_FULLSCREEN);

    return dialog;
}

1
¿Por qué no puedo usar FLAG_FULLSCREEN
User790156

2
Bueno, eso es difícil de decir: ¿importó LayoutParams? ¿Su diseño xml está configurado como fill_parent o match_parent?
Caspar Harmer

12
use android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN
Derzu

1
ERROR:FLAG_FULLSCREEN cannot be resolved or is not a field
Luis A. Florit

1
Es posible que esta respuesta esté desactualizada; es posible que no funcione para Android 4.0 y versiones posteriores.
Caspar Harmer

34
dialog = new Dialog(getActivity(),android.R.style.Theme_Translucent_NoTitleBar);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.setContentView(R.layout.loading_screen);
    Window window = dialog.getWindow();
    WindowManager.LayoutParams wlp = window.getAttributes();

    wlp.gravity = Gravity.CENTER;
    wlp.flags &= ~WindowManager.LayoutParams.FLAG_BLUR_BEHIND;
    window.setAttributes(wlp);
    dialog.getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
    dialog.show();

prueba esto.


1
MATCH_PARENT funcionó para mí.
Rayo
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.