android动画一直重新加载,android – 如何重置AnimationDrawable

我必须动画一个循环倒计时器,我通过使用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作为当前帧数。 (此处的起始索引设置为当轻击暂停按钮时的最后一个隐藏帧)。

欢迎任何想法。

谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值