在我的 android 应用程序中,我想在一些 imageViews
上应用 animation
并实现延迟。当第一个 imageView
动画 50% 时,我想开始第二个 imageView
的 animation
并继续这样。
为此我使用了 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
设置动画。如何在前一个 imageView
的 animation
5 秒后开始为下一个 imageView
设置动画?
我从覆盖方法 onPostExecute()
调用了上面的 showImage()
方法。
最佳答案
使用 Thread.sleep
是实现您想要的目标的不正确方法。你应该看看 Animation
类,特别是 setStartTime
.
您可以构建具有不同(复合)开始时间的不同动画对象并将它们全部应用于 View ,或者您可以使用 setAnimationListener
收听动画事件。
关于java - 安卓:Thread.sleep( ) 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14704507/