Jak ustawić okno dialogowe, aby wyświetlało się na pełnym ekranie? [Zamknięte]

135

Mam widok GridView i chcę wdrożyć okno dialogowe, w którym wybrany przeze mnie obraz powinien być wyświetlany na pełnym ekranie.

więc jak mogę sprawić, by okno dialogowe było wyświetlane w trybie pełnoekranowym? dzięki!

user790156
źródło
2
Jeśli chcesz używać PEŁNEGO EKRANU Dialog, dlaczego nie użyć domyślnej wartości ACTION_VIEW Intentdla plików graficznych?
Will Tate
przepraszam, mam na myśli prawie pełny ekran lub pełny obraz
user790156
3
W połączeniu z odpowiedzią willytate, jeśli musisz dialogować, użyj android.R.style.Theme_Translucent_NoTitleBar_Fullscreen w motywie
ingsaurabh
Może to pomóc stackoverflow.com/a/2700683/1118886
Sheraz Ahmad Khilji
3
@MartinPfeffer Mam również sugestię dla przyszłego użytkownika, ale pytanie zamknięte Andrew Barber nie pochodzi ze społeczności Androida. to jest naprawdę proste pytanie, nowi programiści Androida zawsze są tego ciekawi. to pytanie powinno być ponownie otwarte dla lepszych odpowiedzi i przyszłych użytkowników
Abhishek Singh

Odpowiedzi:

239

próbować

Dialog dialog=new Dialog(this,android.R.style.Theme_Black_NoTitleBar_Fullscreen)
Ahmed Salem
źródło
31
Aby to zadziałało, musiałem użyć android.R.style.Theme_Black_NoTitleBar_Fullscreen
Ben Clayton
4
Call requires API level 11
Luis A. Florit
1
@ LuisA.Florit wypróbuj Theme_Black_NoTitleBar_Fullscreen
Felipe Caldas
22
A co z pełnym ekranem z paskiem tytułowym?
Heath Borders
1
Kiedy robię to (używając DialogFragment), widzę, że kolor paska stanu jest zabijany przez okno dialogowe, a cały ekran ma kolor tła okna. Czy ktoś wie o obejściu? Próbowałem ustawić statusBarColor okna dialogowego, ale bez skutku. PS: kolor paska nawigacji również zostaje zabity.
androidguy
86

na podstawie tego linku prawidłowa odpowiedź (którą sam przetestowałem) to:

umieść ten kod w konstruktorze lub onCreate()metodzie okna dialogowego:

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

dodatkowo ustaw styl okna dialogowego na:

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

można to osiągnąć za pomocą konstruktora, na przykład:

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

EDYCJA: alternatywą dla wszystkich powyższych byłoby ustawienie stylu na android.R.style.ThemeOverlayi to wszystko.

programista Androida
źródło
57

Najłatwiejszy sposób, jaki znalazłem

Dialog dialog=new Dialog(this,android.R.style.Theme_Black_NoTitleBar_Fullscreen);
        dialog.setContentView(R.layout.frame_help);
        dialog.show();
Javier Roberto
źródło
nie mogę zmienić koloru tła, nadal czarny
Jemshit Iskenderov
43

EDYTUJ Do czasu, gdy StackOverflow pozwoli nam na wersję naszych odpowiedzi, jest to odpowiedź, która działa na Androida 3 i starszych. Nie oceniaj go negatywnie, ponieważ teraz nie działa, ponieważ zdecydowanie działa ze starszymi wersjami Androida.


Powinieneś dodać tylko jedną linię do swojej onCreateDialog()metody:

@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
źródło
1
Dlaczego nie mogę używać FLAG_FULLSCREEN
user790156,
2
Cóż, trudno powiedzieć - czy zaimportowałeś LayoutParams? Czy Twój plik XML układu jest ustawiony na fill_parent lub match_parent?
Caspar Harmer
12
użyj android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN
Derzu.
1
BŁĄD:FLAG_FULLSCREEN cannot be resolved or is not a field
Luis A. Florit
1
Możliwe, że ta odpowiedź staje się nieaktualna - może nie działać na Androidzie 4.0 i nowszych.
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();

Spróbuj tego.

Prateek Sharma
źródło
1
MATCH_PARENT pracował dla mnie.
Ray