Hiding and showing multiple views using the same animation

I want to apply animation to multiple views at the same time, how can I apply said animation to multiple types of views (buttons, images and other views)?

+3


source to share


3 answers


If you want to apply animation to multiple views at once, just call the method startAnimation

for those views one by one. They will be at the same time

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

      

Or, if you have a lot of views:



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

      

That is, assuming you want to animate multiple views at the same time, if what you are doing is one by one, we'll dive into animation listeners, and another story

+1


source


You can use object animators. This link has a simple example that you can use as well.



You can also use this tutorial .

+1


source


Use ValueAnimator instead and set the views property to onAnimationUpdate.

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

      

+1


source







All Articles