Предисловие
Реализуйте меню, где меню появляется сверху, а затем исчезает снизу. Когда верхний появляется, существует процесс встряхивания вверх и вниз. Когда дно исчезает, сначала скользите, затем скользите вниз, а затем исчезнет.
Рендеринги следующие:
Ввести зависимости
Реализация 'com.android.support:support-dynamic-animation:27.1.1'1
Создание Springanimation требует трех параметров.
• Анимированный вид
• Динамиканимация типа
Alpharotationrotation_xrotation_yscale_xscale_yscroll_xscroll_ytranslation_xtranslation_ytranslation_zxyz
Приведенная выше диаграмма GIF представляет собой диаграмму предварительного просмотра с DynamicAnimation Translation_Y. Теперь мы устанавливаем параметр для вращения.
Springanimation insigupbtnanimy = новая Springanimation (ConstraintLayout, DynamicAnimation.Rotation, 0);
Рендеринги следующие:
- Последнее место для создания анимации
Смещение относительно текущей позиции представления.
Springforce
Чтобы сделать анимацию гладкой и пружинной, необходимо установить параметры, связанные с Springforce.
- жесткость
То есть жесткость. Чем больше это значение, тем больше создается внутренняя часть, тем менее очевидно упругой эффект в анимации и тем быстрее движение.
Жесткость_highstiffness_lowstiffness_mediumstiffness_very_low
Метод настройки:
signupbtnanimy.getspring (). setstiffness (springforce.stiffness_low);
• Коэффициент демпфирования демпфирования
То есть коэффициент демпфирования, чем больше это значение, тем быстрее останавливается эффект пружины
DEMPING_RATIO_HIGH_BOUNCYDAMPING_RATIO_LOW_BOUNCYDAMPING_RATIO_MEDIUM_BOUNCYDAMPING_RATIO_NO_BOUNCY
Метод настройки:
signupbtnanimy.getspring (). setDampingRatio (springforce.damping_ratio_medium_bouncy);
Startvelocity
Скорость запуска, скорость по умолчанию составляет 0, а устройство - PX/второе.
Общий код заключается в следующем:
• Показать анимацию меню
public void showanimal () {setVisibility (view.visible); Springanimation insigupbtnanimy = новая 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 (); }• Скрыть анимацию меню
public void hideanimal () {height = (screentools.getScreenHeight (getContext ()) - constraintLayout.getheight ()) / 2 + constraintlayout.getheight () + screentools.dp2px (getContext (), 50); ObjectAnimator animator = objectAnimator.offloat (constraintlayout, "translationy", 0f, -100f, высота); Animator.SetDuration (600); animator.setInterpolator (новый DevelerateInterpolator ()); animator.addlistener (new AnimatorListenerEneNAPTER () {@Override public void onAnimationEnd (анимация аниматора) {super.OnanimationEnd (animation); setVisibility (hene); relayout ();}}); animator.start (); } Исходный код: https://github.com/lsnumber1/studyspringanimation
Суммировать
Выше приведено меню реализации Springanimation, появляется сверху и исчезает снизу. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!