Android以编程方式在视图上设置两个动画

时间:2016-08-02 08:26:19

标签: android animation

这里我使用此代码进行制作缩放动画

Animation anim = new ScaleAnimation(1f, 0f, 1f, 0f, b, a);
anim.setDuration(130);
anim.setFillAfter(false);
view.startAnimation(anim);   
anim.start(); 

现在我的视图动画没有问题,但当我添加另一个动画时,它没有动画任何一个,这是我的代码,使两个动画的规模和翻译

Animation anim = new ScaleAnimation(1f, 0f, 1f, 0f, b, a);
Animation animT = new TranslateAnimation(0f,b,0f,a);
anim.setDuration(130);
animT.setDuration(130);
anim.setFillAfter(false);
animT.setFillAfter(false);
view.startAnimation(anim);   
view.startAnimation(animT);   
anim.start(); 
animT.start();

因为我们可以看到我不能同时使用这两个动画如何在不使用xml动画的情况下解决它,因为我的变量每次都被更改

3 个答案:

答案 0 :(得分:15)

使用AnimationSet,如下所示:

AnimationSet set = new AnimationSet(true);

Animation anim = new ScaleAnimation(1f, 0f, 1f, 0f, b, a);
Animation animT = new TranslateAnimation(0f, b, 0f, a);

set.addAnimation(anim);
set.addAnimation(animT);
set.setDuration(130);

view.startAnimation(set);

答案 1 :(得分:5)

您需要使用AnimationSet并添加您想要的任何动画类型 这是一个例子

Animation fadeIn = new AlphaAnimation(0, 1);
fadeIn.setDuration(1000);
Animation fadeOut = new AlphaAnimation(1, 0);
fadeOut.setStartOffset(1000);
fadeOut.setDuration(1000);
AnimationSet animation = new AnimationSet(true);
animation.addAnimation(fadeIn);
animation.addAnimation(fadeOut);
view.startAnimation(animation);

答案 2 :(得分:2)

您可以使用AnimationSet为视图添加多个动画。 查看此链接:Animation with animationSet() in android