¿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!

usuario790156
fuente
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
Esto podría ayudar a stackoverflow.com/a/2700683/1118886
Sheraz Ahmad Khilji
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)
Ahmed Salem
fuente
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.

desarrollador de Android
fuente
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();
Javier Roberto
fuente
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;
}
Caspar Harmer
fuente
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.

Prateek Sharma
fuente
1
MATCH_PARENT funcionó para mí.
Rayo