am bce89a42: Merge "Add updateListener to ViewPropertyAnimator" into klp-dev

* commit 'bce89a426978ab7bd40e5fa9eb2d99e569422a2e':
  Add updateListener to ViewPropertyAnimator
This commit is contained in:
Chet Haase
2013-09-09 16:06:23 -07:00
committed by Android Git Automerger
2 changed files with 33 additions and 2 deletions

View File

@@ -28372,6 +28372,7 @@ package android.view {
method public android.view.ViewPropertyAnimator setInterpolator(android.animation.TimeInterpolator); method public android.view.ViewPropertyAnimator setInterpolator(android.animation.TimeInterpolator);
method public android.view.ViewPropertyAnimator setListener(android.animation.Animator.AnimatorListener); method public android.view.ViewPropertyAnimator setListener(android.animation.Animator.AnimatorListener);
method public android.view.ViewPropertyAnimator setStartDelay(long); method public android.view.ViewPropertyAnimator setStartDelay(long);
method public android.view.ViewPropertyAnimator setUpdateListener(android.animation.ValueAnimator.AnimatorUpdateListener);
method public void start(); method public void start();
method public android.view.ViewPropertyAnimator translationX(float); method public android.view.ViewPropertyAnimator translationX(float);
method public android.view.ViewPropertyAnimator translationXBy(float); method public android.view.ViewPropertyAnimator translationXBy(float);

View File

@@ -93,10 +93,15 @@ public class ViewPropertyAnimator {
private boolean mInterpolatorSet = false; 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; 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 * A lazily-created ValueAnimator used in order to get some default animator properties
* (duration, start delay, interpolator, etc.). * (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 * Sets a listener for events in the underlying Animators that run the property
* animations. * 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. * @return This object, allowing calls to methods in this class to be chained.
*/ */
public ViewPropertyAnimator setListener(Animator.AnimatorListener listener) { public ViewPropertyAnimator setListener(Animator.AnimatorListener listener) {
@@ -361,6 +369,25 @@ public class ViewPropertyAnimator {
return this; return this;
} }
/**
* 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> * Starts the currently pending property animations immediately. Calling <code>start()</code>
* is optional because all animations start automatically at the next opportunity. However, * is optional because all animations start automatically at the next opportunity. However,
@@ -1073,6 +1100,9 @@ public class ViewPropertyAnimator {
} else { } else {
mView.invalidateViewProperty(false, false); mView.invalidateViewProperty(false, false);
} }
if (mUpdateListener != null) {
mUpdateListener.onAnimationUpdate(animation);
}
} }
} }
} }