我正在模拟帧动画;我都工作了一个问题.
我有一个for循环,其中在每次迭代中,它都会在延迟后更改ImageVIEw的Image.
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定义为活动的数据成员(或此代码所在的位置)
步骤#2:不需要时转储处理程序-postDelayed()也在VIEw上实现
步骤#3:创建一个执行postDelayed()调用的助手方法-在这里我将其称为foo()-并在不调用postDelayed()的情况下调用foo()
步骤#4:在Runnable的run()中,再次调用foo()以将Runnable重新计划为另一个延迟时间
总结以上是内存溢出为你收集整理的java-在循环中创建唯一的postDelayed Runnable全部内容,希望文章能够帮你解决java-在循环中创建唯一的postDelayed Runnable所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)