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!
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!
Odpowiedzi:
próbować
Dialog dialog=new Dialog(this,android.R.style.Theme_Black_NoTitleBar_Fullscreen)
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.
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();
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;
}
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.
Dialog
, dlaczego nie użyć domyślnej wartościACTION_VIEW
Intent
dla plików graficznych?