diff options
author | Chet Haase <chet@google.com> | 2013-09-06 18:29:56 -0700 |
---|---|---|
committer | Chet Haase <chet@google.com> | 2013-09-09 10:44:07 -0700 |
commit | 87f4ae67c86c7044253b3e1bcec6956a8c8bf017 (patch) | |
tree | 376c3992fcb91f95aa16e0affe1654cb2117d7cb /core/java/android/view | |
parent | bbddd49d6dc1b72dc81d4bb0033dea578066853e (diff) | |
download | frameworks_base-87f4ae67c86c7044253b3e1bcec6956a8c8bf017.zip frameworks_base-87f4ae67c86c7044253b3e1bcec6956a8c8bf017.tar.gz frameworks_base-87f4ae67c86c7044253b3e1bcec6956a8c8bf017.tar.bz2 |
Add updateListener to ViewPropertyAnimator
New method setUpdateListener() on ViewPropertyAnimator that will
send out update events to the provided listener.
Issue #10118113 Offer update listener on ViewPropertyAnimator
Change-Id: Ib9f8fc6dbbc3c1c58113246d9a3b01e7ac27b14c
Diffstat (limited to 'core/java/android/view')
-rw-r--r-- | core/java/android/view/ViewPropertyAnimator.java | 34 |
1 files changed, 32 insertions, 2 deletions
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); + } } } } |