SpringAnimation 实现菜单从顶部弹出从底部消失动画效果
前言
实现一种菜单,菜单从顶部弹入,然后从底部消失,顶部弹入时,有一个上下抖动的过程,底部消失时,先向上滑动,然后再向下滑动消失。
效果图如下:
引入依赖
implementation 'com.android.support:support-dynamic-animation:27.1.1'1
创建SpringAnimation需要三个参数。
•做动画的View
•做动画的类型(DynamicAnimation)
ALPHA ROTATION ROTATION_X ROTATION_Y SCALE_X SCALE_Y SCROLL_X SCROLL_Y TRANSLATION_X TRANSLATION_Y TRANSLATION_Z X Y Z
上边的gif图为DynamicAnimation为TRANSLATION_Y的预览图,现在我们把参数设置为ROTATION,
SpringAnimation signUpBtnAnimY = new SpringAnimation(constraintLayout, DynamicAnimation.ROTATION, 0);
效果图如下:
- 创建动画的最终位置
相对View的当前位置的偏移量。
SpringForce
为了让动画流畅,有弹簧的性质,需要设置SpringForce的相关参数。
- Stiffness
即刚度,此值越大,产生的里越大,动画中弹性效果越不明显,运动比较快。
STIFFNESS_HIGH STIFFNESS_LOW STIFFNESS_MEDIUM STIFFNESS_VERY_LOW
设置方法为:
signUpBtnAnimY.getSpring().setStiffness(SpringForce.STIFFNESS_LOW);
•DampingRatio阻尼比
即阻尼比,此值越大,弹簧效果停止的越快
DAMPING_RATIO_HIGH_BOUNCY DAMPING_RATIO_LOW_BOUNCY DAMPING_RATIO_MEDIUM_BOUNCY DAMPING_RATIO_NO_BOUNCY
设置方法为:
signUpBtnAnimY.getSpring().setDampingRatio(SpringForce.DAMPING_RATIO_MEDIUM_BOUNCY);
StartVelocity
启动速度,默认速度为0,单位是px/second.
整体代码如下:
•显示菜单动画
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(); }
•隐藏菜单动画
public void hideAnimal() { height = (ScreenTools.getScreenHeight(getContext()) - constraintLayout.getHeight()) / 2 + constraintLayout.getHeight() + ScreenTools.dp2px(getContext(),50); ObjectAnimator animator = ObjectAnimator.ofFloat(constraintLayout, "translationY", 0f, -100f, height); animator.setDuration(600); animator.setInterpolator(new DecelerateInterpolator()); animator.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); setVisibility(GONE); reLayout(); } }); animator.start(); }
源码:https://github.com/LSnumber1/StudySpringAnimation
总结
以上所述是小编给大家介绍的SpringAnimation 实现菜单从顶部弹出从底部消失动画效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
相关文章
Spring Cloud OAuth2实现自定义token返回格式
Spring Security OAuth的token返回格式都是默认的,但是往往这个格式是不适配系统。本文将用一个接口优雅的实现 Spring Cloud OAuth2 自定义token返回格式,需要的可以参考一下2022-06-06SpringBoot中@EnableAsync和@Async注解的使用小结
在SpringBoot中,可以通过@EnableAsync注解来启动异步方法调用的支持,通过@Async注解来标识异步方法,让方法能够在异步线程中执行,本文就来介绍一下,感兴趣的可以了解一下2023-11-11解决IDEA2020 创建maven项目没有src/main/java目录和webapp目录问题
这篇文章主要介绍了IDEA2020 创建maven项目没有src/main/java目录和webapp目录问题解决方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-10-10
最新评论