我有一个动画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) {
}
答案 0 :(得分:1)
我不认为你可以做到这一点"开箱即用",因为没有东西可以引导动画类中的调用实例,afaik。
这就是它的调用方式:
mListener.onAnimationStart(Animation.this);
可能的解决方案是扩展Animation类,并添加一个属性,该属性保持对调用动画实例的引用。