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!
android
android-fullscreen
user790156
źródło
źródło
Dialog
, dlaczego nie użyć domyślnej wartościACTION_VIEW
Intent
dla plików graficznych?Odpowiedzi:
próbować
Dialog dialog=new Dialog(this,android.R.style.Theme_Black_NoTitleBar_Fullscreen)
źródło
Call requires API level 11
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.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.ThemeOverlay
i to wszystko.źródło
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();
źródło
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; }
źródło
FLAG_FULLSCREEN cannot be resolved or is not a field
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.
źródło