Utilizo este método para iniciar cualquier animación (resID de la animación XML). Si nextPuzzleOnEnd es verdadero, se llama al método "nextPuzzle" cuando la animación ha finalizado.
El método es parte de mis aplicaciones de rompecabezas y lo uso para mostrar cualquier animación de éxito y luego (después de que anim haya terminado) continúo con el siguiente acertijo.
/*
* start animation (any view)
*/
private void startAnimation(View v, int resId, Boolean nextPuzzleOnEnd){
Animation anim;
if(v!=null){ // can be null, after change of orientation
anim = AnimationUtils.loadAnimation(this.getContext(),resId);
anim.setFillAfter(false);
v.setAnimation(anim);
if(nextPuzzleOnEnd){
anim.setAnimationListener(new AnimationListener() {
public void onAnimationStart(Animation anim)
{
};
public void onAnimationRepeat(Animation anim)
{
};
public void onAnimationEnd(Animation anim)
{
nextPuzzle();
};
});
}
v.startAnimation(anim);
}
}