解决见下文
我有一个类似进度条的动画。我有一个用于启动此动画的硬件脚踏板。预期的结果是:
脚下降,进度增加,直到脚松开。如果我保持脚踩进度从 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()
...仍然是完全相同的结果。我也尝试过使用动态创建的动画。