Préface
Implémentez un menu où le menu apparaît en haut, puis disparaît du bas. Lorsque le haut arrive, il y a un processus de secouer de haut en bas. Lorsque le fond disparaît, glissez d'abord, puis glissez vers le bas, puis disparaissez.
Les rendus sont les suivants:
Introduire les dépendances
Implémentation 'com.android.support:Support-dynamic-animation:27.1.1'1
La création de Springanimation nécessite trois paramètres.
• Vue animée
• Type de dynamianimation
Alpharotationrotation_xrotation_yscale_xscale_yscroll_xscroll_ytranslation_xtranslation_ytranslation_zxyz
Le diagramme GIF ci-dessus est un diagramme d'aperçu avec DynamiCanimation traduction_y. Maintenant, nous définissons le paramètre sur la rotation.
Springanimation SignUpBtnanimy = new Springanimation (CONSTRAINTLAYOut, Dynamicanimation.rotation, 0);
Les rendus sont les suivants:
- l'emplacement final pour créer une animation
Le décalage par rapport à la position actuelle de la vue.
Printemps
Afin de rendre l'animation lisse et élastique, les paramètres liés à Springforce doivent être définis.
- raideur
C'est-à-dire la rigidité. Plus cette valeur est grande, plus la partie intérieure est grande, moins l'effet élastique dans l'animation est évident, et plus le mouvement est rapide.
Raideur_highstiffness_lowstiffness_mediumstiffness_very_low
La méthode de réglage est:
SignUpBtnanimy.getsPring (). SetStiffness (Springforce.stiffness_low);
• Ratio d'amortissement d'amortissement
C'est-à-dire que le rapport d'amortissement, plus cette valeur est grande, plus l'effet de ressort s'arrête rapidement
Daming_ratio_high_bouncydamping_ratio_low_bouncydamping_ratio_medium_bouncydamping_ratio_no_bouncy
La méthode de réglage est:
SignUpBtnanimy.getsPring (). SetDampingRatio (Springforce.damping_ratio_medium_bouncy);
Startvelocity
Vitesse de démarrage, la vitesse par défaut est de 0 et l'unité est PX / seconde.
Le code global est le suivant:
• Afficher l'animation du menu
public void showanimal () {setVisibility (View.Visible); Springanimation SignUpBtNanimy = new Springanimation (CONSTRAINTLAYOut, Dynamicanimation.Translation_Y, 0); SignUpBtnanimy.getsPring (). SetStiffness (Springforce.stiffness_low); SignUpBtnanimy.getsPring (). SetDampingRatio (Springforce.damping_ratio_medium_bouncy); SignUpBtnanimy.SetStartvelocity (5000); SignUpBtnanimy.Start (); }• Masquer l'animation du menu
public void HideanImal () {height = (ScreenTools.getScreenHeight (getContext ()) - CONSTRAINTLAYOut.GetHeight ()) / 2 + CONSTRAINTLAYOut.GetHeight () + ScreenTools.dp2px (getContext (), 50); ObjectAnimator Animator = ObjectAnimator.Offloat (CONSTRAINTLAYOUT, "traduction", 0f, -100f, hauteur); Animator.SetDuration (600); animator.setinterpolator (new decerateraterpolateur ()); Animator.AddListener (New AnimatorListEnerAdapter () {@Override public void onanimationEnd (animator animation) {super.onanationEnd (animation); setVisibility (Gone); relayout ();}}); animator.start (); } Code source: https://github.com/lsnumber1/studyspringanimation
Résumer
Ce qui précède est que le menu d'implémentation de Springanimation apparaît en haut et disparaît du bas. J'espère que ce sera utile à tout le monde. Si vous avez des questions, veuillez me laisser un message et l'éditeur répondra à tout le monde à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!