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 ObjectAnimators
... The problem is that I can't figure how to stop and clear this animation from the ImageView
when the button is clicked as btn.clearAnimation()
obviously doesn't work.
Thank you for your help.
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<Animator> animations = new ArrayList<Animator>();
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);
}
}