2

在我的 android 应用程序中,我想animation在一些imageViews实施延迟的情况下应用。当第一个imageView动画 50% 时,我想从animation第二个开始,imageView然后像这样继续。

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);
}

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

我从 override 方法中调用了上述showImage()方法onPostExecute()

4

1 回答 1

3

使用Thread.sleep是实现你想要的不正确的方式。你应该看看这个Animation类,特别是setStartTime.

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

于 2013-02-05T10:04:20.663 回答