java - 在循环中创建独特的延迟后运行

标签 java android android-animation

我正在模拟帧动画;我有这一切工作备用一期。 我有一个 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()

第四步:在Runnablerun()中,再次调用foo()重新调度Runnable另一个延迟时间

关于java - 在循环中创建独特的延迟后运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6589258/

相关文章:

java - Netbeans,java导入图像(res文件夹)

java - Atlas不按顺序渲染图像[libGDX]

java - 如何创建像 Instagram 应用程序那样的动画背景渐变?

android - 带wrap_content的LinearLayout的LayoutTransition

java - 如何使用 joda-time 将 3 位数 24 小时时间转换为 12 小时制?

java - 谷歌云平台不返回任何内容

android - 安装外部库 (uCrop)

Android Navigation Drawer 从 URL 设置图片

android翻译动画绝对-从右到左和从左到右

java - RMI 和异常