网站建设资讯

NEWS

网站建设资讯

SpringAnimation如何实现菜单从顶部弹出从底部消失动画效果-创新互联

这篇文章主要介绍SpringAnimation如何实现菜单从顶部弹出从底部消失动画效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

创新互联是专业的饶河网站建设公司,饶河接单;提供成都网站建设、成都网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行饶河网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

前言

实现一种菜单,菜单从顶部弹入,然后从底部消失,顶部弹入时,有一个上下抖动的过程,底部消失时,先向上滑动,然后再向下滑动消失。

 效果图如下:

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);

效果图如下:

SpringAnimation如何实现菜单从顶部弹出从底部消失动画效果

- 创建动画的最终位置

 相对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();
  }

以上是“SpringAnimation如何实现菜单从顶部弹出从底部消失动画效果”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


分享文章:SpringAnimation如何实现菜单从顶部弹出从底部消失动画效果-创新互联
路径分享:http://njwzjz.com/article/dooodo.html