diff options
-rw-r--r-- | api/current.txt | 1 | ||||
-rw-r--r-- | core/java/android/view/ViewPropertyAnimator.java | 34 |
2 files changed, 33 insertions, 2 deletions
diff --git a/api/current.txt b/api/current.txt index 7a77692..23f0617 100644 --- a/api/current.txt +++ b/api/current.txt @@ -28405,6 +28405,7 @@ package android.view { method public android.view.ViewPropertyAnimator setInterpolator(android.animation.TimeInterpolator); method public android.view.ViewPropertyAnimator setListener(android.animation.Animator.AnimatorListener); method public android.view.ViewPropertyAnimator setStartDelay(long); + method public android.view.ViewPropertyAnimator setUpdateListener(android.animation.ValueAnimator.AnimatorUpdateListener); method public void start(); method public android.view.ViewPropertyAnimator translationX(float); method public android.view.ViewPropertyAnimator translationXBy(float); diff --git a/core/java/android/view/ViewPropertyAnimator.java b/core/java/android/view/ViewPropertyAnimator.java index e6bf420..cea7e49 100644 --- a/core/java/android/view/ViewPropertyAnimator.java +++ b/core/java/android/view/ViewPropertyAnimator.java @@ -93,11 +93,16 @@ public class ViewPropertyAnimator { private boolean mInterpolatorSet = false; /** - * Listener for the lifecycle events of the underlying + * Listener for the lifecycle events of the underlying ValueAnimator object. */ private Animator.AnimatorListener mListener = null; /** + * Listener for the update events of the underlying ValueAnimator object. + */ + private ValueAnimator.AnimatorUpdateListener mUpdateListener = null; + + /** * A lazily-created ValueAnimator used in order to get some default animator properties * (duration, start delay, interpolator, etc.). */ @@ -353,7 +358,10 @@ public class ViewPropertyAnimator { * Sets a listener for events in the underlying Animators that run the property * animations. * - * @param listener The listener to be called with AnimatorListener events. + * @see Animator.AnimatorListener + * + * @param listener The listener to be called with AnimatorListener events. A value of + * <code>null</code> removes any existing listener. * @return This object, allowing calls to methods in this class to be chained. */ public ViewPropertyAnimator setListener(Animator.AnimatorListener listener) { @@ -362,6 +370,25 @@ public class ViewPropertyAnimator { } /** + * Sets a listener for update events in the underlying ValueAnimator that runs + * the property animations. Note that the underlying animator is animating between + * 0 and 1 (these values are then turned into the actual property values internally + * by ViewPropertyAnimator). So the animator cannot give information on the current + * values of the properties being animated by this ViewPropertyAnimator, although + * the view object itself can be queried to get the current values. + * + * @see android.animation.ValueAnimator.AnimatorUpdateListener + * + * @param listener The listener to be called with update events. A value of + * <code>null</code> removes any existing listener. + * @return This object, allowing calls to methods in this class to be chained. + */ + public ViewPropertyAnimator setUpdateListener(ValueAnimator.AnimatorUpdateListener listener) { + mUpdateListener = listener; + return this; + } + + /** * Starts the currently pending property animations immediately. Calling <code>start()</code> * is optional because all animations start automatically at the next opportunity. However, * if the animations are needed to start immediately and synchronously (not at the time when @@ -1073,6 +1100,9 @@ public class ViewPropertyAnimator { } else { mView.invalidateViewProperty(false, false); } + if (mUpdateListener != null) { + mUpdateListener.onAnimationUpdate(animation); + } } } } |