java - 安卓:Thread.sleep( ) 不工作

标签 java android android-animation

在我的 android 应用程序中,我想在一些 imageViews 上应用 animation 并实现延迟。当第一个 imageView 动画 50% 时,我想开始第二个 imageViewanimation 并继续这样。

为此我使用了 Thread.sleep() 方法。

public void showImage() throws IOException, InterruptedException{
    final Animation anim = AnimationUtils.loadAnimation(Home.this,R.anim.myanimation);



    image_1.setImageUrl(links[0]); 
    image_2.setImageUrl(links[1]); 
    image_3.setImageUrl(links[2]);
    image_4.setImageUrl(links[3]);

    image_5.setImageUrl(links[4]); 
    image_6.setImageUrl(links[5]); 
    image_7.setImageUrl(links[0]); 
    image_8.setImageUrl(links[1]); 
    //System.out.println("me");

    image_1_layer.setAnimation(anim); 
    Thread.sleep(5000);
    image_2_layer.setAnimation(anim); 
    Thread.sleep(5000);
    image_3_layer.setAnimation(anim);
    Thread.sleep(5000);
     image_4_layer.setAnimation(anim); 
     Thread.sleep(5000);

     image_5_layer.setAnimation(anim);
     Thread.sleep(5000);
     image_6_layer.setAnimation(anim);
     Thread.sleep(5000);
     image_7_layer.setAnimation(anim);
     Thread.sleep(5000);
     image_8_layer.setAnimation(anim);
     Thread.sleep(5000);
}

但是当它运行应用程序时,它会在开始任何动画 之前延迟,然后并行地为所有imageViews 设置动画。如何在前一个 imageViewanimation 5 秒后开始为下一个 imageView 设置动画?

我从覆盖方法 onPostExecute() 调用了上面的 showImage() 方法。

最佳答案

使用 Thread.sleep 是实现您想要的目标的不正确方法。你应该看看 Animation类,特别是 setStartTime .

您可以构建具有不同(复合)开始时间的不同动画对象并将它们全部应用于 View ,或者您可以使用 setAnimationListener 收听动画事件。

关于java - 安卓:Thread.sleep( ) 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14704507/

相关文章:

java - 解码 html 响应

java - 缺少 list 标签 OpenIDE-Module

java - Maven中相同依赖的不同版本

java - Maven、Git、Android 和 Maven 发布插件

android - 如何只用一个元素填充屏幕?

android - 翻转动画崩溃

android - 如何做android图像动画

java.lang.NumberFormatException : Invalid int: "5" 异常

java - 在 Bottom Sheet 中更新 recyclerview 内容失败

android - 在android中 Activity 动画结束后如何调用函数