在Android上延迟翻译(动画)多个图像

时间:2014-06-10 10:19:30

标签: android image translate-animation

我想制作一个图像框(使它们从右向左移动,空间间隔)我尝试制作具有不同起点的多个动画,因为我教它可能有效(但它不仅仅是一张图片动画)。

到目前为止,这是我的代码:

ImageView img_animation = (ImageView) findViewById(R.id.imageView1);
ImageView img_animation2 = (ImageView) findViewById(R.id.imageView2);
ImageView img_animation3 = (ImageView) findViewById(R.id.imageView3);

img_animation.setImageResource(R.drawable.num1);
img_animation2.setImageResource(R.drawable.num2);
img_animation2.setImageResource(R.drawable.num3);

        TranslateAnimation animation = new TranslateAnimation(50.0f, -300.0f,
                0.0f, 0.0f);         
        animation.setDuration(20000); 
        animation.setRepeatCount(10);

                TranslateAnimation animation2 = new TranslateAnimation(100.0f, -300.0f,
                0.0f, 0.0f);         
        animation.setDuration(20000); 
        animation.setRepeatCount(10); 

                TranslateAnimation animation3 = new TranslateAnimation(150.0f, -300.0f,
                0.0f, 0.0f);         
        animation.setDuration(20000); 
        animation.setRepeatCount(10); 

        img_animation.startAnimation(animation); 
        img_animation2.startAnimation(animation2);
        img_animation3.startAnimation(animation3);

我想到的下一件事是使用线程,但如果我是正确的,只有一个动画可以运行。我还教过从这三个中制作一个图像(但是会有白色背景,我希望它是透明的)。任何帮助表示赞赏。

编辑:也尝试

animation.setStartOffset(1000);

只有第一个开始

1 个答案:

答案 0 :(得分:1)

你正在使用相同的动画变量。试试这个:

    TranslateAnimation animation = new TranslateAnimation(50.0f, -300.0f,
            0.0f, 0.0f);         
    animation.setDuration(20000); 
    animation.setRepeatCount(10);

     TranslateAnimation animation2 = new TranslateAnimation(100.0f, -300.0f,
            0.0f, 0.0f);         
    animation2.setDuration(20000); 
    animation2.setRepeatCount(10); 

     TranslateAnimation animation3 = new TranslateAnimation(150.0f, -300.0f,
            0.0f, 0.0f);         
    animation3.setDuration(20000); 
    animation3.setRepeatCount(10); 

    img_animation.startAnimation(animation); 
    img_animation2.startAnimation(animation2);
    img_animation3.startAnimation(animation3);