J'ai un GridView et je veux faire une implémentation d'un dialogue, sur lequel l'image que j'ai sélectionnée doit s'afficher en plein écran.
Comment puis-je faire en sorte que la boîte de dialogue s'affiche en mode plein écran ? Merci !
J'ai un GridView et je veux faire une implémentation d'un dialogue, sur lequel l'image que j'ai sélectionnée doit s'afficher en plein écran.
Comment puis-je faire en sorte que la boîte de dialogue s'affiche en mode plein écran ? Merci !
Pour que cela fonctionne, j'ai dû utiliser Android.R.style.Theme_Black_NoTitleBar_Fullscreen.
Sur la base de ce lien la réponse correcte (que j'ai testée moi-même) est :
mettez ce code dans le constructeur ou le onCreate()
de la boîte de dialogue :
getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT);
en outre, définissez le style de la boîte de dialogue à :
<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>
Cela pourrait être réalisé via le constructeur, par exemple :
public FullScreenDialog(Context context)
{
super(context, R.style.full_screen_dialog);
...
EDIT : une alternative à tout ce qui précède serait de définir le style à android.R.style.ThemeOverlay
et c'est tout.
EDIT2 : Pour supporter la bibliothèque matérielle, ajouter une dépendance Gradle à app(module) build.gradle
fichier
implementation "com.google.android.material:material:$material_version"
Définissez ensuite le thème du dialogue comme suit R.style.ThemeOverlay_MaterialComponents
Avec mon essai, celui-ci est le seul à fonctionner. android.R.style.ThemeOverlay
est la clé.
@Yeung Je me demande si ThemeOverlay.MaterialComponents
convient également. Pouvez-vous vérifier ?
Essayé. Cela fonctionne, mais je ne sais pas si c'est utile ou non car je développe avec un vieil appareil Android 5.
EDITAR Jusqu'à ce que StackOverflow nous permette de modifier nos réponses, cette réponse fonctionne pour Android 3 et les versions inférieures. Veuillez ne pas la décoter parce qu'elle ne fonctionne pas pour vous maintenant, car elle fonctionne sans aucun doute avec les anciennes versions d'Android.
Vous ne devriez avoir besoin d'ajouter qu'une seule ligne à votre fichier onCreateDialog()
méthode :
@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;
}
Eh bien, c'est difficile à dire - Avez-vous importé LayoutParams ? Votre layout xml est-il réglé sur fill_parent ou match_parent ?
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();
Essayez ceci.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
2 votes
Si vous souhaitez utiliser un PLEIN ÉCRAN
Dialog
pourquoi ne pas utiliser l'option par défautACTION_VIEW
Intent
pour les fichiers d'images ?0 votes
Désolé, je veux dire presque plein écran ou pleine image
3 votes
En conjonction avec la réponse à willytate, si vous devez dialoguer, utilisez Android.R.style.Theme_Translucent_NoTitleBar_Fullscreen dans le thème.
0 votes
Cela pourrait aider stackoverflow.com/a/2700683/1118886
0 votes
Je ne comprends pas pourquoi cette question a été fermée. C'est ennuyeux. J'ai une suggestion, mais je ne peux pas la poster. Bravo à @Andrew Barber ! !! -.-
3 votes
@MartinPfeffer j'ai aussi une suggestion pour les futurs utilisateurs mais la question a été fermée Andrew Barber n'est pas de la communauté Android. C'est vraiment une question simple les nouveaux développeurs Android sont toujours curieux à ce sujet. cette question devrait être ouverte à nouveau pour de meilleures réponses et pour les futurs utilisateurs.