非常令人困惑,如果在上次通话后过早调用,则翻译动画未完成

时间:2012-04-25 03:28:19

标签: android animation

已解决,请参阅下文

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

知道发生了什么事吗?我在Gingerbread上使用三星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() ...仍然完全相同的结果。我也尝试过使用动态创建的动画。

1 个答案:

答案 0 :(得分:0)

Aargh!,为大家道歉。 我终于意识到我做错了什么! 我有一个计时器任务设置取消动画与动画相同的延迟,但我忘了在脚踏板释放取消这个。 非常感谢。 Ĵ