调用onAnimationStart的动画实例覆盖了AnimationListener

时间:2015-11-11 11:50:22

标签: android animation android-animation

我有一个动画XML文件,我有不同的动画对象引用相同的动画,我已经实现了AnimationListener我只是想找出我的动画变量的哪个实例正在调用该AnimationListener的覆盖方法。

animation1 = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.translate_left);
animation2 = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.translate_left);
animation3 = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.translate_right);
animation4 = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.translate_right);
animation5 = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.translate_right);

animation1.setAnimationListener(this);
animation2.setAnimationListener(this);
animation3.setAnimationListener(this);
animation4.setAnimationListener(this);
animation5.setAnimationListener(this);

他们是5个不同的对象,如果我已经实现了动画监听器,那么现在指的是一个普通动画,而不是我如何找出哪个动画对象是指动画监听器

@Override
public void onAnimationStart(Animation animation) {
    // Which object it is referring to 
}

@Override
public void onAnimationEnd(Animation animation) {

}

@Override
public void onAnimationRepeat(Animation animation) {

}

1 个答案:

答案 0 :(得分:1)

我不认为你可以做到这一点"开箱即用",因为没有东西可以引导动画类中的调用实例,afaik。

这就是它的调用方式:

mListener.onAnimationStart(Animation.this);

可能的解决方案是扩展Animation类,并添加一个属性,该属性保持对调用动画实例的引用。