Java Code Examples for android.animation.ValueAnimator#getDuration()

The following examples show how to use android.animation.ValueAnimator#getDuration() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ViewAnim.java    From AndroidStudyDemo with GNU General Public License v2.0 6 votes vote down vote up
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
	
	if (valueAnimator.getCurrentPlayTime() <= valueAnimator.getDuration()) {
		float fraction = valueAnimator.getAnimatedFraction();// 动画进度
		
		float scaleXDuration = mFinalBounds.width() - mStartBounds.width();
		float scaleYDuration = mFinalBounds.height() - mStartBounds.height();
		mView.getLayoutParams().width = (int)(mStartBounds.width() + (scaleXDuration * fraction));
		mView.getLayoutParams().height = (int)(mStartBounds.height() + (scaleYDuration * fraction));
		
		if (mListener != null) {
			mListener.onViewAnimationUpdate(mView, valueAnimator, fraction);
		}
	}
	mView.requestLayout();
}
 
Example 2
Source File: ViewAnim.java    From nono-android with GNU General Public License v3.0 6 votes vote down vote up
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
	
	if (valueAnimator.getCurrentPlayTime() <= valueAnimator.getDuration()) {
		float fraction = valueAnimator.getAnimatedFraction();// 动画进度
		
		float scaleXDuration = mFinalBounds.width() - mStartBounds.width();
		float scaleYDuration = mFinalBounds.height() - mStartBounds.height();
		mView.getLayoutParams().width = (int)(mStartBounds.width() + (scaleXDuration * fraction));
		mView.getLayoutParams().height = (int)(mStartBounds.height() + (scaleYDuration * fraction));
		
		if (mListener != null) {
			mListener.onViewAnimationUpdate(mView, valueAnimator, fraction);
		}
	}
	mView.requestLayout();
}
 
Example 3
Source File: ViewAnim.java    From ActivityOptionsICS with Eclipse Public License 1.0 6 votes vote down vote up
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
	
	if (valueAnimator.getCurrentPlayTime() <= valueAnimator.getDuration()) {
		float fraction = valueAnimator.getAnimatedFraction();// 动画进度
		
		float scaleXDuration = mFinalBounds.width() - mStartBounds.width();
		float scaleYDuration = mFinalBounds.height() - mStartBounds.height();
		mView.getLayoutParams().width = (int)(mStartBounds.width() + (scaleXDuration * fraction));
		mView.getLayoutParams().height = (int)(mStartBounds.height() + (scaleYDuration * fraction));
		
		if (mListener != null) {
			mListener.onViewAnimationUpdate(mView, valueAnimator, fraction);
		}
	}
	mView.requestLayout();
}
 
Example 4
Source File: MotionTiming.java    From material-components-android with Apache License 2.0 5 votes vote down vote up
@NonNull
static MotionTiming createFromAnimator(@NonNull ValueAnimator animator) {
  MotionTiming timing =
      new MotionTiming(
          animator.getStartDelay(), animator.getDuration(), getInterpolatorCompat(animator));
  timing.repeatCount = animator.getRepeatCount();
  timing.repeatMode = animator.getRepeatMode();
  return timing;
}
 
Example 5
Source File: CircularProgressBarUtils.java    From SimplifyReader with Apache License 2.0 5 votes vote down vote up
static float getAnimatedFraction(ValueAnimator animator) {
  float fraction = animator.getDuration() > 0 ? ((float) animator.getCurrentPlayTime()) / animator.getDuration() : 0f;

  fraction = min(fraction, 1f);
  fraction = animator.getInterpolator().getInterpolation(fraction);
  return fraction;
}
 
Example 6
Source File: CircularProgressBarUtils.java    From Lay-s with MIT License 5 votes vote down vote up
static float getAnimatedFraction(ValueAnimator animator) {
  float fraction = animator.getDuration() > 0 ? ((float) animator.getCurrentPlayTime()) / animator.getDuration() : 0f;

  fraction = min(fraction, 1f);
  fraction = animator.getInterpolator().getInterpolation(fraction);
  return fraction;
}
 
Example 7
Source File: IconReleasePainter.java    From UltimateAndroid with Apache License 2.0 5 votes vote down vote up
@Override public void onAnimationUpdate(ValueAnimator animation) {
  iconYPosition = ((int) animation.getAnimatedValue() - iconMargin);

  if (animation.getCurrentPlayTime() > animation.getDuration() / 2
      && !alphaEnterTrigger
      && actualState.equals(MaterialAnimatedSwitchState.RELEASE)) {
    exitAlphaAnimator.start();
    alphaEnterTrigger = true;
  }
}
 
Example 8
Source File: FloatingView.java    From dingo with GNU General Public License v3.0 4 votes vote down vote up
/**
 * Update animation initialization flag
 *
 * @param animation {@link ValueAnimator}
 */
private void updateInitAnimation(ValueAnimator animation) {
    if (mAnimateInitialMove && animation.getDuration() <= animation.getCurrentPlayTime()) {
        mIsInitialAnimationRunning = false;
    }
}
 
Example 9
Source File: FirstFrameAnimatorHelper.java    From LaunchEnr with GNU General Public License v3.0 4 votes vote down vote up
public void onAnimationUpdate(final ValueAnimator animation) {
    final long currentTime = System.currentTimeMillis();
    if (mStartTime == -1) {
        mStartFrame = sGlobalFrameCounter;
        mStartTime = currentTime;
    }

    final long currentPlayTime = animation.getCurrentPlayTime();
    boolean isFinalFrame = Float.compare(1f, animation.getAnimatedFraction()) == 0;

    if (!mHandlingOnAnimationUpdate &&
        sVisible &&
        // If the current play time exceeds the duration, or the animated fraction is 1,
        // the animation will get finished, even if we call setCurrentPlayTime -- therefore
        // don't adjust the animation in that case
        currentPlayTime < animation.getDuration() && !isFinalFrame) {
        mHandlingOnAnimationUpdate = true;
        long frameNum = sGlobalFrameCounter - mStartFrame;
        // If we haven't drawn our first frame, reset the time to t = 0
        // (give up after MAX_DELAY ms of waiting though - might happen, for example, if we
        // are no longer in the foreground and no frames are being rendered ever)
        if (frameNum == 0 && currentTime < mStartTime + MAX_DELAY && currentPlayTime > 0) {
            // The first frame on animations doesn't always trigger an invalidate...
            // force an invalidate here to make sure the animation continues to advance
            mTarget.getRootView().invalidate();
            animation.setCurrentPlayTime(0);
        // For the second frame, if the first frame took more than 16ms,
        // adjust the start time and pretend it took only 16ms anyway. This
        // prevents a large jump in the animation due to an expensive first frame
        } else if (frameNum == 1 && currentTime < mStartTime + MAX_DELAY &&
                   !mAdjustedSecondFrameTime &&
                   currentTime > mStartTime + IDEAL_FRAME_DURATION &&
                   currentPlayTime > IDEAL_FRAME_DURATION) {
            animation.setCurrentPlayTime(IDEAL_FRAME_DURATION);
            mAdjustedSecondFrameTime = true;
        } else {
            if (frameNum > 1) {
                mTarget.post(new Runnable() {
                        public void run() {
                            animation.removeUpdateListener(FirstFrameAnimatorHelper.this);
                        }
                    });
            }
        }
        mHandlingOnAnimationUpdate = false;
    }
}
 
Example 10
Source File: FirstFrameAnimatorHelper.java    From Trebuchet with GNU General Public License v3.0 4 votes vote down vote up
public void onAnimationUpdate(final ValueAnimator animation) {
    final long currentTime = System.currentTimeMillis();
    if (mStartTime == -1) {
        mStartFrame = sGlobalFrameCounter;
        mStartTime = currentTime;
    }

    final long currentPlayTime = animation.getCurrentPlayTime();
    boolean isFinalFrame = Float.compare(1f, animation.getAnimatedFraction()) == 0;

    if (!mHandlingOnAnimationUpdate &&
        sVisible &&
        // If the current play time exceeds the duration, or the animated fraction is 1,
        // the animation will get finished, even if we call setCurrentPlayTime -- therefore
        // don't adjust the animation in that case
        currentPlayTime < animation.getDuration() && !isFinalFrame) {
        mHandlingOnAnimationUpdate = true;
        long frameNum = sGlobalFrameCounter - mStartFrame;
        // If we haven't drawn our first frame, reset the time to t = 0
        // (give up after MAX_DELAY ms of waiting though - might happen, for example, if we
        // are no longer in the foreground and no frames are being rendered ever)
        if (frameNum == 0 && currentTime < mStartTime + MAX_DELAY && currentPlayTime > 0) {
            // The first frame on animations doesn't always trigger an invalidate...
            // force an invalidate here to make sure the animation continues to advance
            mTarget.getRootView().invalidate();
            animation.setCurrentPlayTime(0);
        // For the second frame, if the first frame took more than 16ms,
        // adjust the start time and pretend it took only 16ms anyway. This
        // prevents a large jump in the animation due to an expensive first frame
        } else if (frameNum == 1 && currentTime < mStartTime + MAX_DELAY &&
                   !mAdjustedSecondFrameTime &&
                   currentTime > mStartTime + IDEAL_FRAME_DURATION &&
                   currentPlayTime > IDEAL_FRAME_DURATION) {
            animation.setCurrentPlayTime(IDEAL_FRAME_DURATION);
            mAdjustedSecondFrameTime = true;
        } else {
            if (frameNum > 1) {
                mTarget.post(new Runnable() {
                        public void run() {
                            animation.removeUpdateListener(FirstFrameAnimatorHelper.this);
                        }
                    });
            }
            if (DEBUG) print(animation);
        }
        mHandlingOnAnimationUpdate = false;
    } else {
        if (DEBUG) print(animation);
    }
}
 
Example 11
Source File: FirstFrameAnimatorHelper.java    From Trebuchet with GNU General Public License v3.0 4 votes vote down vote up
public void print(ValueAnimator animation) {
    float flatFraction = animation.getCurrentPlayTime() / (float) animation.getDuration();
    Log.d("FirstFrameAnimatorHelper", sGlobalFrameCounter +
          "(" + (sGlobalFrameCounter - mStartFrame) + ") " + mTarget + " dirty? " +
          mTarget.isDirty() + " " + flatFraction + " " + this + " " + animation);
}
 
Example 12
Source File: FirstFrameAnimatorHelper.java    From TurboLauncher with Apache License 2.0 4 votes vote down vote up
public void onAnimationUpdate(final ValueAnimator animation) {
    final long currentTime = System.currentTimeMillis();
    if (mStartTime == -1) {
        mStartFrame = sGlobalFrameCounter;
        mStartTime = currentTime;
    }

    final long currentPlayTime = animation.getCurrentPlayTime();
    if (!mHandlingOnAnimationUpdate &&
        sVisible &&
        // If the current play time exceeds the duration, the animation
        // will get finished, even if we call setCurrentPlayTime -- therefore
        // don't adjust the animation in that case
        currentPlayTime < animation.getDuration()) {
        mHandlingOnAnimationUpdate = true;
        long frameNum = sGlobalFrameCounter - mStartFrame;
        // If we haven't drawn our first frame, reset the time to t = 0
        // (give up after MAX_DELAY ms of waiting though - might happen, for example, if we
        // are no longer in the foreground and no frames are being rendered ever)
        if (frameNum == 0 && currentTime < mStartTime + MAX_DELAY && currentPlayTime > 0) {
            // The first frame on animations doesn't always trigger an invalidate...
            // force an invalidate here to make sure the animation continues to advance
            mTarget.getRootView().invalidate();
            animation.setCurrentPlayTime(0);
        // For the second frame, if the first frame took more than 16ms,
        // adjust the start time and pretend it took only 16ms anyway. This
        // prevents a large jump in the animation due to an expensive first frame
        } else if (frameNum == 1 && currentTime < mStartTime + MAX_DELAY &&
                   !mAdjustedSecondFrameTime &&
                   currentTime > mStartTime + IDEAL_FRAME_DURATION &&
                   currentPlayTime > IDEAL_FRAME_DURATION) {
            animation.setCurrentPlayTime(IDEAL_FRAME_DURATION);
            mAdjustedSecondFrameTime = true;
        } else {
            if (frameNum > 1) {
                mTarget.post(new Runnable() {
                        public void run() {
                            animation.removeUpdateListener(FirstFrameAnimatorHelper.this);
                        }
                    });
            }
            if (DEBUG) print(animation);
        }
        mHandlingOnAnimationUpdate = false;
    } else {
        if (DEBUG) print(animation);
    }
}
 
Example 13
Source File: FirstFrameAnimatorHelper.java    From TurboLauncher with Apache License 2.0 4 votes vote down vote up
public void print(ValueAnimator animation) {
    float flatFraction = animation.getCurrentPlayTime() / (float) animation.getDuration();
    Log.d("FirstFrameAnimatorHelper", sGlobalFrameCounter +
          "(" + (sGlobalFrameCounter - mStartFrame) + ") " + mTarget + " dirty? " +
          mTarget.isDirty() + " " + flatFraction + " " + this + " " + animation);
}
 
Example 14
Source File: FloatingView.java    From FloatingView with Apache License 2.0 4 votes vote down vote up
/**
 * Update animation initialization flag
 *
 * @param animation {@link ValueAnimator}
 */
private void updateInitAnimation(ValueAnimator animation) {
    if (mAnimateInitialMove && animation.getDuration() <= animation.getCurrentPlayTime()) {
        mIsInitialAnimationRunning = false;
    }
}
 
Example 15
Source File: FirstFrameAnimatorHelper.java    From LB-Launcher with Apache License 2.0 4 votes vote down vote up
public void onAnimationUpdate(final ValueAnimator animation) {
    final long currentTime = System.currentTimeMillis();
    if (mStartTime == -1) {
        mStartFrame = sGlobalFrameCounter;
        mStartTime = currentTime;
    }

    final long currentPlayTime = animation.getCurrentPlayTime();
    boolean isFinalFrame = Float.compare(1f, animation.getAnimatedFraction()) == 0;

    if (!mHandlingOnAnimationUpdate &&
        sVisible &&
        // If the current play time exceeds the duration, or the animated fraction is 1,
        // the animation will get finished, even if we call setCurrentPlayTime -- therefore
        // don't adjust the animation in that case
        currentPlayTime < animation.getDuration() && !isFinalFrame) {
        mHandlingOnAnimationUpdate = true;
        long frameNum = sGlobalFrameCounter - mStartFrame;
        // If we haven't drawn our first frame, reset the time to t = 0
        // (give up after MAX_DELAY ms of waiting though - might happen, for example, if we
        // are no longer in the foreground and no frames are being rendered ever)
        if (frameNum == 0 && currentTime < mStartTime + MAX_DELAY && currentPlayTime > 0) {
            // The first frame on animations doesn't always trigger an invalidate...
            // force an invalidate here to make sure the animation continues to advance
            mTarget.getRootView().invalidate();
            animation.setCurrentPlayTime(0);
        // For the second frame, if the first frame took more than 16ms,
        // adjust the start time and pretend it took only 16ms anyway. This
        // prevents a large jump in the animation due to an expensive first frame
        } else if (frameNum == 1 && currentTime < mStartTime + MAX_DELAY &&
                   !mAdjustedSecondFrameTime &&
                   currentTime > mStartTime + IDEAL_FRAME_DURATION &&
                   currentPlayTime > IDEAL_FRAME_DURATION) {
            animation.setCurrentPlayTime(IDEAL_FRAME_DURATION);
            mAdjustedSecondFrameTime = true;
        } else {
            if (frameNum > 1) {
                mTarget.post(new Runnable() {
                        public void run() {
                            animation.removeUpdateListener(FirstFrameAnimatorHelper.this);
                        }
                    });
            }
            if (DEBUG) print(animation);
        }
        mHandlingOnAnimationUpdate = false;
    } else {
        if (DEBUG) print(animation);
    }
}
 
Example 16
Source File: FirstFrameAnimatorHelper.java    From LB-Launcher with Apache License 2.0 4 votes vote down vote up
public void print(ValueAnimator animation) {
    float flatFraction = animation.getCurrentPlayTime() / (float) animation.getDuration();
    Log.d("FirstFrameAnimatorHelper", sGlobalFrameCounter +
          "(" + (sGlobalFrameCounter - mStartFrame) + ") " + mTarget + " dirty? " +
          mTarget.isDirty() + " " + flatFraction + " " + this + " " + animation);
}