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

med*_*edo 5 animation android

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

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

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

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();
Run Code Online (Sandbox Code Playgroud)

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

Sha*_*hav 17

使用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);
Run Code Online (Sandbox Code Playgroud)


Ant*_*wan 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);
Run Code Online (Sandbox Code Playgroud)