Value Animator android
android, animation
Solution
You can delay an animation by `offset` ms by calling
animation.setStartOffset(offset);
So for three images with duration `ANIM_DURATION`, you can use the following values to start them sequentially (probably by passing them as a parameter to `startAnimation_image()`)
// note: this is for illustrative purposes. You should put this in a loop
int firstOffset = 0 * ANIM_DURATION; // starts immediately
int secondOffset = 1 * ANIM_DURATION; // starts after the first animation is finished
int thirdOffset = 2 * ANIM_DURATION; // starts after the second animation is finished
// ... and so on.
Problem
I am Trying to animate 3 images one after the other using value animator but i am not able to decide how to call the three handlers after regular intervals..Suppose there are 3 images and i m making three handlers for animating them.But i am able to bring the three images at a time but not one after the other at regular intervals.Please Help This is my UpdateListener which i am calling from my handler ``` public void startAnimation_image(final ImageView aniView) { animator = ValueAnimator.ofFloat(0, .8f); animator.setDuration(Constants.ANIM_DURATION); animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { int Low = 10; int High = width-150; int R = (int) ((Math.random() * (High - Low)) + Low); @Override public void onAnimationUpdate(ValueAnimator animation) { float value = ((Float) (animation.getAnimatedValue())).floatValue(); aniView.setTranslationX(R); Log.e("mscale",150*mScale +""); Log.e("value is", value+""); aniView.setTranslationY((mDisplaySize.bottom + (150*mScale))*value); x_point = aniView.getTranslationX(); y_point = aniView.getTranslationY(); } }); animator.addListener(new AnimatorListener() { @Override public void onAnimationStart(Animator arg0) { } @Override public void onAnimationRepeat(Animator arg0) { } @Override public void onAnimationEnd(Animator arg0) { startAnimation(); } @Override public void onAnimationCancel(Animator arg0) { } }); animator.start(); } ``` This is one of my handler ``` @Override public void handleMessage(Message msg) { super.handleMessage(msg); //int viewId = new Random().nextInt(STARS.length); id = getApplicationContext().getResources().getIdentifier(STARS[0], "drawable", getApplicationContext().getPackageName()); inflate = LayoutInflater.from(StarsActivity2.this); img[0].setVisibility(ImageView.VISIBLE); img[0].setImageResource(id); mAllImageViews.add(img[0]); LayoutParams animationLayout = (LayoutParams) img[0].getLayoutParams(); img[0].setLayoutParams(animationLayout); Log.e("mHandler",img[0]+ ""); startAnimation_image(img[0]); } }; ``` There are similaarly three handlers and three update listeners.. Please help...