在Android中onAnimationEnd之后调用的applyTransformation

时间:2014-07-23 16:32:54

标签: android animation background

我有自定义视图和自定义动画。我的自定义视图覆盖onAnimationEnd,我的自定义Animation类分别覆盖applyTransformation。

我发现在调用onAnimationEnd之后仍然会调用applyTransformation。

我尝试使用here提供的解决方案,但它仍无效。

1 个答案:

答案 0 :(得分:2)

我在一段时间后遇到了这个问题,并将其追溯到Android的错误跟踪器上的一个问题。 我不确定它是否仍然存在或者是否已经修复但是在平均时间我用一个小的黑客来解决它:

class SomeClass {
    private bool mAnimationEnded = true;

    private void SomeMethod() {
        Animation animation = new Animation() {
            @Override
            protected void applyTransformation(float interpolatedTime, Transformation t) {
                if (mAnimationEnded) return;
                // ...
            }
        }

        animation.setAnimationListener(new AnimationListener() {
            @Override
            public void onAnimationEnd(Animation animation) {
                mAnimationEnded = true;
                // ...
            }

            @Override 
            public void onAnimationStart(Animation animation) {
                mAnimationEnded = false;
                // ...   
            }

            @Override
            public onAnimationRepeat(Animation animation) { }
        }
        // ... Use animation here
    }
}