Vorwort
Implementieren Sie ein Menü, in dem das Menü von oben angezeigt wird und dann von unten verschwindet. Wenn der Top auftaucht, gibt es einen Prozess, auf dem sie auf und ab schütteln. Wenn der Boden verschwindet, schieben Sie zuerst nach oben, schieben Sie dann nach unten und verschwinden dann.
Die Renderings sind wie folgt:
Abhängigkeiten einführen
Implementierung 'com.android.support:Support-dynamische Animation:27.1.1'1
Das Erstellen von Springanimation erfordert drei Parameter.
• Animierte Ansicht
• Dynamicanimation -Typ
AlpharotationRotation_xrotation_yscale_xscale_yscroll_xscroll_ytranslation_xtranslation_ytranslation_zxyz
Das obige GIF -Diagramm ist ein Vorschau -Diagramm mit Dynamicanimation Translation_Y. Jetzt setzen wir den Parameter auf Rotation.
Springanimation SignUpBtnanimy = New Springanimation (ConstraintLayout, Dynamicanimation.Rotation, 0);
Die Renderings sind wie folgt:
- Der endgültige Ort zum Erstellen einer Animation
Der Offset relativ zur aktuellen Position der Ansicht.
Frühlingskraft
Um die Animation reibungslos und federlos zu machen, müssen die Springforce -zugeordnete Parameter festgelegt werden.
- Steifheit
Das heißt, Steifheit. Je größer dieser Wert ist, desto größer ist der innere Teil, desto weniger offensichtlich der elastische Effekt in der Animation und desto schneller die Bewegung.
Steifheit_highstiffness_lowstiffness_mediumstiffness_very_low
Die Einstellungsmethode lautet:
SignUpBtnanimy.getspring (). SetStiffness (Springforce.Stiffness_low);
• Dämpfungsverhältnis
Das heißt das Dämpfungsverhältnis, je größer dieser Wert, desto schneller stoppt der Federeffekt
DAMPING_RATIO_HIGH_BOUNCYDAMPING_RATIO_LOW_BOUNCYDAMPING_RATIO_MEDIUM_BOUNCYDAMPING_RATIO_NO_BOUNCY
Die Einstellungsmethode lautet:
SignUpBtnanimy.getspring (). setDampingratio (Springforce.damping_ratio_Medium_bouncy);
Startvelocity
Startgeschwindigkeit, die Standardgeschwindigkeit beträgt 0 und das Gerät ist PX/Sekunde.
Der Gesamtcode lautet wie folgt:
• Menüanimation anzeigen
public void Showanimal () {setvisability (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 (); }• Menüanimation ausblenden
public void hideAnimal () {height = (screentools.getscreenHeight (getContext ()) - ConstraintLayout.Getheight ()) / 2 + ConstraintLayout.Getheight () + Screentools.dp2px (getContext (), 50); Objektanimator Animator = Objektanimator.offloat (ConstraintLayout, "Translationy", 0F, -100F, Höhe); Animator.SetDuration (600); Animator.SetInterpolator (neuer DecelerateInterpolator ()); Animator.AddListener (neuer AnimatorListenerAdapter () {@Override public void onanimationend (Animatoranimation) {Super.onanimationend (Animation); Animator.Start (); } Quellcode: https://github.com/lsnumber1/studyspringanimation
Zusammenfassen
Das obige ist das Menü Springanimation -Implementierungsmenü von oben und verschwindet von unten. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird allen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!