Ich habe eine GridView und möchte eine Implementierung eines Dialogfelds erstellen, in dem das von mir ausgewählte Bild im Vollbildmodus angezeigt werden soll.
Wie kann ich den Dialog im Vollbildmodus anzeigen lassen? Vielen Dank!
Ich habe eine GridView und möchte eine Implementierung eines Dialogfelds erstellen, in dem das von mir ausgewählte Bild im Vollbildmodus angezeigt werden soll.
Wie kann ich den Dialog im Vollbildmodus anzeigen lassen? Vielen Dank!
Antworten:
Versuchen
Dialog dialog=new Dialog(this,android.R.style.Theme.Black.NoTitleBar.Fullscreen)
Call requires API level 11
DialogFragment
), sehe ich, dass die Farbe der Statusleiste durch den Dialog gelöscht wird. Der gesamte Bildschirm ist die Hintergrundfarbe des Dialogs. Kennt jemand eine Problemumgehung? Ich habe versucht, die StatusBarColor des Dialogfensters ohne Wirkung festzulegen. PS: Die Farbe der Navigationsleiste wird ebenfalls getötet.
Basierend auf diesem Link lautet die richtige Antwort (die ich selbst getestet habe):
Fügen Sie diesen Code in den Konstruktor oder die onCreate()
Methode des Dialogfelds ein:
getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT);
Stellen Sie außerdem den Stil des Dialogfelds auf Folgendes ein:
<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>
Dies könnte über den Konstruktor erreicht werden, zum Beispiel:
public FullScreenDialog(Context context)
{
super(context, R.style.full_screen_dialog);
...
BEARBEITEN: Eine Alternative zu all dem wäre, den Stil auf android.R.style.Theme zu setzen und fertig.
Der einfachste Weg, den ich gefunden habe
Dialog dialog=new Dialog(this,android.R.style.Theme_Black_NoTitleBar_Fullscreen);
dialog.setContentView(R.layout.frame_help);
dialog.show();
BEARBEITEN Bis StackOverflow es uns ermöglicht, unsere Antworten zu versionieren, ist dies eine Antwort, die für Android 3 und niedriger funktioniert. Bitte stimmen Sie es nicht ab, da es jetzt nicht für Sie funktioniert, da es definitiv mit älteren Android-Versionen funktioniert.
Sie sollten Ihrer onCreateDialog()
Methode nur eine Zeile hinzufügen müssen :
@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();
Versuche dies.
Dialog
die StandardeinstellungACTION_VIEW
Intent
für Bilddateien.