Android:动画上的cancel()不起作用

时间:2015-11-24 18:00:06

标签: java android animation cancellation objectanimator

我一直在做一个小游戏,我需要一个进度条动画,当我第一次触摸按钮时开始,如果我在动画结束之前再次触摸按钮,则进度条需要重置。

在我的代码 Sub WebSMacro() Dim IE As Object Dim Webloc As String Dim FullWeb As String Webloc = ActiveSheet.Range("B39").Value FullWeb = "http://www.example.com=" & Webloc Set IE = CreateObject("InternetExplorer.Application") IE.Visible = True IE.Navigate FullWeb Do While IE.Busy Application.Wait DateAdd("s", 1, Now) Loop IE.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER Application.Wait DateAdd("s", 10, Now) IE.Quit Set IE = Nothing End Sub 中效果不错,但animation.start();似乎不起作用。

French Version of this Question

我的活动代码包含不起作用的行:

animation.cancel()

1 个答案:

答案 0 :(得分:0)

我认为问题在于animation.cancel()没有效果,因为您在它之后立即调用animation.start();

尝试这样的事情:

声明一个字段:

private boolean mStarted = false;

然后在动画回调中设置它并检查其值:

animation.addListener(new Animator.AnimatorListener() {
    @Override
    public void onAnimationStart(Animator animation) {
        mHasStarted = true;
    }

    @Override
    public void onAnimationEnd(Animator animation) {
        mHasStarted = false; // reset the field value so that it can be started again onClick once it has ened
    }

    @Override
    public void onAnimationCancel(Animator animation) {
       mHasStarted = false;
    }
});

if (mStarted) {
    animation.cancel();
} else {
    animation.start();
}

希望这有帮助!