gpt4 book ai didi

android - 如何重置 AnimationDrawable

转载 作者:IT老高 更新时间:2023-10-28 21:45:00 24 4
gpt4 key购买 nike

我必须为一个循环倒数计时器设置动画,我通过使用 AnimationDrawable 为 ImageView 的背景设置动画来实现(每个图像都删除了相应的圆切片)。问题是用户可以暂停这个动画,所以我必须重新加载动画,但随后出现问题。我尝试将动画设置为空,将 ImageView 的背景设置为空,设置动画的可见性,但实际上没有任何帮助,因为帧数保持不变。我必须找到一种解决方法来删除所有帧并添加新帧或将整个动画重置为默认状态。

第 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 作为当前帧数。 (此处的起始索引设置为点击暂停按钮时的最后一个隐藏帧。)

欢迎任何想法。

谢谢

最佳答案

这将在调用 stop() 后立即将 (AnimationDrawable) timerAnimation 发送到第一帧:

timerAnimation.stop();
timerAnimation.selectDrawable(0);

关于android - 如何重置 AnimationDrawable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7685327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com