0

解决见下文

我有一个类似进度条的动画。我有一个用于启动此动画的硬件脚踏板。预期的结果是:
脚下降,进度增加,直到脚松开。如果我保持脚踩进度从 0 到 100% 动画距离(屏幕宽度)下一次我这样做同样适用。
但是:
如果我在动画完成之前松开脚(比如 20%),那么下次我踩下并按住踏板时,动画将不会一直运行到最后,并且会在大约 80% 处停止(至我可以看出两者之间有关系,但可能只是睡眠不足!)
另外:如果我在短时间(20%)踩下踏板后等待几秒钟,那么下一个动画将按预期运行。我已经在下面发布了代码。

知道发生了什么吗?我在姜饼的三星 Galaxy S 上。

public void startPedalProgress(int color){
    pedal_down_progress.setBackgroundColor(color);
    pedal_down_progress.clearAnimation();
    Animation progressAnim = AnimationUtils.loadAnimation(this, R.anim.pedal_progress);
    progressAnim.setDuration(3000);
    pedal_down_progress.setVisibility(LinearLayout.VISIBLE);
    pedal_down_progress.startAnimation(progressAnim);
}
public void stopPedalProgress(){
    pedal_down_progress.clearAnimation();
}

和我的动画

<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:shareInterpolator="false">
  <translate
   android:fromXDelta="0%" android:toXDelta="100%"
   android:fromYDelta="0%" android:toYDelta="0%"
   android:duration="3000" />
</set>

我尝试过声明progressAnim为全局并调用progressAnim.cancel()...仍然是完全相同的结果。我也尝试过使用动态创建的动画。

4

1 回答 1

0

Aargh!, apologies everyone. I finally realised what I was doing wrong! I had a timer task set to cancel the animation with the same delay as the animation but I was forgetting to cancel this on a footpedal release. Many thanks. J

于 2012-04-26T15:43:38.227 回答