package com.kdp.wanandroidclient.utils; import android.animation.Animator; import android.support.v4.view.animation.LinearOutSlowInInterpolator; import android.view.View; import android.view.ViewPropertyAnimator; import android.view.animation.Animation; /*** * @author kdp * @date 2019/3/27 16:41 * @description */ public class ViewAnimatorHelper { private boolean isAnimating; private ViewPropertyAnimator viewPropertyAnimator; private View view; public void bindView(View view){ if (view == null) throw new NullPointerException("The view is cannot null"); this.view = view; if (viewPropertyAnimator == null){ viewPropertyAnimator = view.animate(); viewPropertyAnimator.setDuration(300); viewPropertyAnimator.setInterpolator(new LinearOutSlowInInterpolator()); } } public void showFloatActionButton(){ view.setVisibility(View.VISIBLE); viewPropertyAnimator.scaleX(1.0f).scaleY(1.0f).alpha(1.0f).setListener(null); } public void hideFloatActionButton(){ viewPropertyAnimator.scaleX(0.0f).scaleY(0.0f).alpha(0.0f).setListener(animationListener); } private Animator.AnimatorListener animationListener = new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animation) { isAnimating = true; } @Override public void onAnimationEnd(Animator animation) { isAnimating = false; view.setVisibility(View.INVISIBLE); } @Override public void onAnimationCancel(Animator animation) { isAnimating = false; } @Override public void onAnimationRepeat(Animator animation) { } }; public boolean isAnimating() { return isAnimating; } }