我必须动画一个循环倒计时器,我通过使用AnimationDrawable(每个图像具有相应的切片的圆删除)动画的ImageView的背景做。问题是,用户有能力暂停这个动画,所以我必须重新加载动画,但然后一个问题出现。我已经尝试将动画设置为null,将ImageView的背景设置为null,设置动画的可见性,但几乎没有什么帮助,因为帧数保持不变。我必须找到一个解决方法,删除所有框架和添加新的框架或将整个动画重置为默认状态。
步骤1 – 初始化动画(开始帧索引为0)
timerView.setBackgroundResource(R.drawable.timer_switch);
timerAnimation = (AnimationDrawable)timerView.getBackground();
System.out.println("Number of frames: " + timerAnimation.getNumberOfFrames());
for (int frameIndex = startingFrameIndex; frameIndex < 60; frameIndex++) {
if (frameIndex < 10) {
uri = "drawable/timer_0000" + frameIndex;
} else {
uri = "drawable/timer_000" + frameIndex;
}
imageResourceId = getResources().getIdentifier(uri, null, getPackageName());
timerAnimation.addFrame(getResources().getDrawable(imageResourceId), timerImageFrameDuration);
}
第2步 – 这里是棘手的部分,我不知道该怎么办。我试过的东西:
timerAnimation.stop();
timerAnimation.setCallback(null);
timerAnimation.setVisibility(true, false);
timerAnimation = null;
步骤3 – 调用步骤2后,我再次调用步骤1,但Sys.out仍显示60作为当前帧数。 (此处的起始索引设置为当轻击暂停按钮时的最后一个隐藏帧)。
欢迎任何想法。
谢谢