Stop AnimatorSet of ObjectAnimators in Android

后端 未结 2 860
逝去的感伤
逝去的感伤 2021-02-04 02:53

Im trying to stop the animation of an ImageView when a button is clicked. The animation I am using is an AnimatorSet consisting of 5 ObjectAnimat

2条回答
  •  轻奢々
    轻奢々 (楼主)
    2021-02-04 03:17

    You should be able to call animatorSet.cancel() to cancel the animation. Here's an example that cancels the animation 5 seconds after it starts:

    package com.example.myapp2;
    
    import android.animation.Animator;
    import android.animation.AnimatorSet;
    import android.animation.ObjectAnimator;
    import android.app.Activity;
    import android.os.Bundle;
    import android.os.Handler;
    import android.widget.TextView;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class MyActivity extends Activity {
        /**
         * Called when the activity is first created.
         */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    
            TextView tv = (TextView) findViewById(R.id.hello_world);
    
            List animations = new ArrayList();
    
            animations.add(ObjectAnimator.ofInt(tv, "left", 100, 1000).setDuration(10000));
            animations.add(ObjectAnimator.ofFloat(tv, "textSize", 10, 50).setDuration(10000));
    
            final AnimatorSet animatorSet = new AnimatorSet();
            animatorSet.playTogether(animations);
            animatorSet.start();
    
            Handler handler = new Handler();
            handler.postDelayed(new Runnable() {
                @Override
                public void run() {
                    animatorSet.cancel();
                }
            }, 5000);
        }
    }
    

提交回复
热议问题