105 votes

Afficher le DialogFragment avec une animation qui croît à partir d'un point

Je montre un DialogFragment lorsque l'utilisateur tape sur une ligne dans un fichier ListView . J'aimerais animer l'affichage de la boîte de dialogue pour qu'elle se développe à partir du centre de la ligne. Un effet similaire peut être observé lors de l'ouverture d'un dossier depuis le lanceur.

Une idée que j'ai eue est une combinaison de TranslateAnimation y ScaleAnimation . Y a-t-il un autre moyen ?

-1voto

Ajouter ce code sur les valeurs anim

 <scale
    android:duration="@android:integer/config_longAnimTime"
    android:fromXScale="0.2"
    android:fromYScale="0.2"
    android:toXScale="1.0"
    android:toYScale="1.0"
    android:pivotX="50%"
    android:pivotY="50%"/>
<alpha
    android:fromAlpha="0.1"
    android:toAlpha="1.0"
    android:duration="@android:integer/config_longAnimTime"
    android:interpolator="@android:anim/accelerate_decelerate_interpolator"/>

appel sur styles.xml

<style name="DialogScale">
    <item name="android:windowEnterAnimation">@anim/scale_in</item>
    <item name="android:windowExitAnimation">@anim/scale_out</item>
</style>

Sur le code java : set Onclick

public void onClick(View v) {
        fab_onclick(R.style.DialogScale, "Scale" ,(Activity) context,getWindow().getDecorView().getRootView());
      //  Dialogs.fab_onclick(R.style.DialogScale, "Scale");

    }

sur la méthode :

alertDialog.getWindow().getAttributes().windowAnimations = type;

Prograide.com

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.

Powered by:

X