Reversing an Animation

前端 未结 8 462
清歌不尽
清歌不尽 2020-11-30 01:41

I have an ImageView that gets animated when it is added to a layout. When it is removed, I want to reverse the same animation.

Is there a way to reverse an animation

8条回答
  •  借酒劲吻你
    2020-11-30 02:07

    Based on pcans idea, you can reverse any interpolator, not just linear.

    class ReverseInterpolator implements Interpolator{
        private final Interpolator delegate;
    
        public ReverseInterpolator(Interpolator delegate){
            this.delegate = delegate;
        }
    
        public ReverseInterpolator(){
            this(new LinearInterpolator());
        }
    
        @Override
        public float getInterpolation(float input) {
            return 1 - delegate.getInterpolation(input);
        }
    }
    

    Usage

    ReverseInterpolator reverseInterpolator = new ReverseInterpolator(new AccelerateInterpolator())
    myAnimation.setInterpolator(reverseInterpolator);
    

提交回复
热议问题