Come impostare la finestra di dialogo da mostrare a schermo intero? [chiuso]


129

Ho un GridView e voglio realizzare una finestra di dialogo, in cui l'immagine che ho selezionato dovrebbe essere visualizzata a schermo intero.

quindi come posso fare per mostrare la finestra di dialogo in modalità a schermo intero? Grazie!


2
Se si desidera utilizzare uno SCHERMO COMPLETO Dialog, perché non utilizzare solo l'impostazione predefinita ACTION_VIEW Intentper i file di immagine?
Will Tate,

scusate intendo quasi lo schermo intero o l'immagine completa
user790156

3
In combinazione con la risposta a willytate se devi dialogare, usa android.R.style.Theme_Translucent_NoTitleBar_Fullscreen in theme
ingsaurabh


3
@MartinPfeffer ho anche un suggerimento per l'utente futuro, ma la domanda chiusa Andrew Barber non proviene dalla comunità Android. questa è davvero una semplice domanda per i nuovi sviluppatori Android sempre curiosi di questo. questa domanda dovrebbe essere di nuovo aperta per risposte migliori e futuri utenti
Abhishek Singh,

Risposte:


228

provare

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

29
Perché questo funzioni per me ho dovuto usare android.R.style.Theme_Black_NoTitleBar_Fullscreen
Ben Clayton

4
Call requires API level 11
Luis A. Florit,

1
@ LuisA.Florit provare Theme_Black_NoTitleBar_Fullscreen
Felipe Caldas

21
Che dire dello schermo intero con una barra del titolo?
Heath Borders,

1
Quando lo faccio (usando DialogFragment) vedo che il colore della barra di stato viene ucciso dalla finestra di dialogo, l'intero schermo è il colore di sfondo della finestra di dialogo. Qualcuno sa di una soluzione alternativa? Ho provato a impostare statusBarColor della finestra di dialogo, senza alcun effetto. PS: anche il colore della barra di navigazione viene ucciso.
androidguy il

83

sulla base di questo link , la risposta corretta (che ho testato io stesso) è:

inserisci questo codice nel costruttore o nel onCreate()metodo della finestra di dialogo:

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

inoltre, imposta lo stile della finestra di dialogo su:

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

ciò potrebbe essere ottenuto tramite il costruttore, ad esempio:

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

EDIT: un'alternativa a tutto quanto sopra sarebbe quella di impostare lo stile su android.R.style.Theme e basta.


55

Il modo più semplice che ho trovato

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

1
grazie questo è stato davvero il modo più semplice!
CommonSenseCode

1
Ha funzionato come un fascino!
Link 88

1
Grande. Funziona perfettamente
Jevgenij Kononov,

Questo è perfetto! Dovrebbe essere la soluzione accettata.
AmeyaB,

non posso cambiare il colore di sfondo, ancora nero
Jemshit Iskenderov,

42

MODIFICA Fino a quando StackOverflow ci consente di eseguire la versione delle nostre risposte, questa è una risposta che funziona per Android 3 e versioni precedenti. Per favore, non sottovalutarlo perché non funziona per te ora, perché sicuramente funziona con le versioni precedenti di Android.


Dovresti solo aggiungere una riga al tuo onCreateDialog()metodo:

@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
Perché non riesco a utilizzare FLAG_FULLSCREEN
user790156

2
Bene, è difficile dirlo: hai importato LayoutParams? Il tuo xml di layout è impostato su fill_parent o match_parent?
Caspar Harmer,

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

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

1
È possibile che questa risposta non sia aggiornata: potrebbe non funzionare per Android 4.0 e versioni successive.
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();

prova questo.


1
MATCH_PARENT ha lavorato per me.
Ray,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.