我想同时为多个视图应用动画,如何将所述动画应用于多种类型的视图(按钮,图像视图和其他视图)?
答案 0 :(得分:1)
如果你想要的是同时在几个视图上应用动画,只需在这些视图上依次调用startAnimation
方法。他们将同时进行
//Get your views
View view1 = findViewById(R.id.view1);
View view2 = findViewById(R.id.view2);
View view3 = findViewById(R.id.view3);
//Get your animation
Animation youranimation = AnimationUtils.loadAnimation(this, R.anim.animationid);
//Start animations
view1.startAnimation(youranimation);
view2.startAnimation(youranimation);
view3.startAnimation(youranimation);
或者如果您有很多观点:
Animation youranimation = AnimationUtils.loadAnimation(this, R.anim.animationid);
int[] viewIds = new int[]{R.id.view1,R.id.view2,R.id.view3,R.id.view4};
for(int id : viewIds) findViewById(id).startAnimation(youranimation);
也就是说,假设您想要同时为多个视图制作动画,如果您要一个接一个地进行动画,我们将深入研究动画听众以及另一个故事
答案 1 :(得分:1)
答案 2 :(得分:1)
改为使用ValueAnimator,并在onAnimationUpdate中设置views属性。
mShowAnimator = ValueAnimator.ofFloat(0f, 1f);
mShowAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
for (View v : mTargetViews) {
v.setAlpha((Float)animation.getAnimatedValue());
}
}
});
答案 3 :(得分:0)
您可以创建一个包含多个ObjectAnimator的大型AnimatorSet()。这使您可以立即播放所有动画,而不会延迟。请参阅我的答案here。