我正在模拟帧动画;我有这一切工作备用一期。 我有一个 for 循环,在每次迭代中,它都会在延迟后更改 ImageView 的图像。
for(int i = 1; i <13; i++){
if (stop== false){
String imgName = "b"+ Integer.toString(i);
id = getResources().getIdentifier(imgName, "drawable", getPackageName());
Handler handlerTimer = new Handler();
handlerTimer.postDelayed(new Runnable(){
public void run() {
view.setImageDrawable((getResources().getDrawable(id)));
}}, 300);
}
}
问题是 run() 不会在每次迭代时刷新;它只工作一次。
如何刷新或创建新的 run()?
我愿意接受任何其他方式来做到这一点。
如有任何建议,我们将不胜感激。
最佳答案
第 1 步:将 Runnable
定义为 Activity 的数据成员(或此代码所在的任何位置)
步骤 #2:转储 Handler
,因为您不需要它 -- postDelayed()
也在 View
上实现
第 3 步:创建一个执行 postDelayed()
调用的辅助方法——我将在此处将该方法称为 foo()
——并调用foo()
不调用 postDelayed()
第四步:在Runnable
的run()
中,再次调用foo()
重新调度Runnable
另一个延迟时间
关于java - 在循环中创建独特的延迟后运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6589258/