J’essaie d’avoir une boîte de dialog personnalisée comme si elle glissait depuis une vue texte. Est-ce possible? Je n’arrive pas à appliquer une animation à la classe de dialog. J’ai essayé cette ligne dans le constructeur, mais cela n’a aucun effet:
this.getWindow (). setWindowAnimations (R.anim.paranimation);
Je ne suis même pas sûr que l’animation soit correcte, mais je pourrai l’ajuster une fois que je verrai ce qu’il fait. Je vais le lister ci-dessous par souci d’exhaustivité. Je ne cherche pas d’aide sur l’animation, mais uniquement sur l’application du dialog.
paranimation.xml:
J’ai eu du mal avec l’animation Dialog aujourd’hui, j’ai finalement réussi à utiliser des styles, alors voici un exemple.
Pour commencer, la chose la plus importante – je l’ai probablement utilisé 5 façons différentes aujourd’hui, mais je ne pouvais pas le dire parce que … Si les parameters d’animation de vos périphériques sont définis sur “Aucune animation” (Paramètres → Affichage → Animation) ne soyez pas animé quoi que vous fassiez!
Ce qui suit est une version simplifiée de mes styles.xml. J’espère que c’est explicite. Cela devrait être situé dans res/values
.
La windowEnterAnimation
est une de mes animations et se trouve dans res\anim
. Le windowExitAnimation
est l’une des animations qui fait partie du SDK Android.
Ensuite, lorsque je crée la boîte de dialog dans mes activités onCreateDialog(int id)
méthode, je fais ce qui suit.
Dialog dialog = new Dialog(this, R.style.PauseDialog); // Setting the title and layout for the dialog dialog.setTitle(R.ssortingng.pause_menu_label); dialog.setContentView(R.layout.pause_menu);
Vous pouvez également définir les animations de la manière suivante au lieu d’utiliser le constructeur Dialog qui prend un thème.
Dialog dialog = new Dialog(this); dialog.getWindow().getAtsortingbutes().windowAnimations = R.style.PauseDialogAnimation;
J’ai créé les animations Fade in et Fade Out pour Dialogbox en utilisant le code ChrisJD.
Inside res / style.xml
Dans anim / fadein.xml
Dans anim / fadeut.xml
Activité principale
Dialog imageDiaglog= new Dialog(MainActivity.this,R.style.PauseDialog);
De droite à gauche (animation d’entrée) et de gauche à droite (sortie d’animation):
styles.xml:
Créez deux fichiers dans res / anim /:
translate_right_side.xml:
translate_left_side.xml:
En vous Fragment / Activité:
Dialog dialog = new Dialog(getActivity(), R.style.CustomDialog);
Je rencontre le même problème, mais enfin, je résous le problème par la voie suivie
((ViewGroup)dialog.getWindow().getDecorView()) .getChildAt(0).startAnimation(AnimationUtils.loadAnimation( context,android.R.anim.slide_in_left));