3618d30f8ab6018025b11869676b309c3b4961cf |
|
14-Aug-2015 |
Doris Liu <tianliu@google.com> |
Internal cleanup for Animator framework This CL includes the following changes: 1) Remove redundant field mPlayingState in ValueAnimator. 2) Refactor AnimationHandler so that all of its interaction with Choreographer is through an interface. A custom provider that implements this interface can be plugged in and provide timing pulse that are independent of Choreographer. 3) Better encapsulate AnimationHandler and ValueAnimator. Interaction between the two is done through register/unregister frame callbacks as well as AnimationFrameCallback interface. 4) Change how animation delay is handled. Change-Id: Icd49f727321c362dab49b5b33815333c9ea559e0
/frameworks/base/core/java/android/animation/TimeAnimator.java
|
c42b28dda45347b05826dc3e04f5605a60867a63 |
|
07-Apr-2015 |
Jeff Brown <jeffbrown@google.com> |
Fix animation start jank due to expensive layout operations. The Choreographer carefully schedules animation updates to occur after input but before traversals occur. This ensures that the effects of animations are perceived immediately in the next frame. The start time of animation is usually set the moment the animator first runs. The start time serves as a reference for timing the remainder of the animation. Setting the start time during the animation callback works well except when traversals take a long time to complete. In that case, we may end up drawing the initial frame of the animation then skipping several following frames (because a lot of time has already passed since the animation start time was set), effectively shortening the duration of the animation. To resolve this issue, we introduce a new COMMIT phase within the Choreographer. The COMMIT callback runs after traversals complete and may provide an updated frame time that more accurately reflects the time when the frame finished drawing. In the case where an animation is just starting, we note the fact that its initial start time has not yet been committed (the user hasn't actually seen anything on screen yet). Then, during the COMMIT phase, we adjust the animation start time to better reflect the time when the animation's first frame was drawn, effectively causing the animation actually start after the expensive traversal operations occurred such that no frames will be skipped. Bug: 17258911 Change-Id: I279603d01fd4ed1de8f51a77c62f4fec5e9b746a
/frameworks/base/core/java/android/animation/TimeAnimator.java
|
0d1c27a713cb49de8f6f4fd0a129baa883153921 |
|
03-Nov-2014 |
Chet Haase <chet@google.com> |
Fix seeking and scaled duration behavior The animation scaled was not being factored in early enough in the activity lifecycle. Also, setCurrentPlaytTime() was not accounting for the scaled duration correctly. Finally, added setCurrentFraction() as a more general-purpose seeking facility. Issue #18222006 Animator duration scale ignored in some situations Issue #17951668 add ability to seek fraction, not just time Change-Id: Idad401f5ff5026d7046c36eee09d78a4793215dc
/frameworks/base/core/java/android/animation/TimeAnimator.java
|
08d05e3d1d6ade6924266296033981a96b47d5fb |
|
08-Aug-2012 |
Daniel Sandler <dsandler@android.com> |
New status bar capable of multiple sliding panels. There are some visual glitches but almost everything should be put back pretty much where it was. Change-Id: I2f9b0591d44599b07bd83f03c4e09e6dd98e1448
/frameworks/base/core/java/android/animation/TimeAnimator.java
|
20c4f87b2916d05e860d11568d7db6b2d340e909 |
|
27-Apr-2012 |
Jeff Brown <jeffbrown@google.com> |
Use choreographer frame time to schedule animations. Instead of using the current uptime millis, which can exhibit substantial jitter depending on when the code runs, use the current frame's vsync time when performing animations. The frame time provides a more consistent pulse. Bug: 6375101 Change-Id: Icf307cd8524246607db7496c6fef9a5eeb7c0439
/frameworks/base/core/java/android/animation/TimeAnimator.java
|
a33de55404eb2133d1bae2add3f6e8708459f56d |
|
04-Feb-2012 |
Chet Haase <chet@google.com> |
Make the TimeAnimator class public. This class has existed since ICS, but was hidden. This change just makes it public API. Also, cleaned up some internal javadocs. Change-Id: Id69408446ced183e01d2b065a67397eb305d9665
/frameworks/base/core/java/android/animation/TimeAnimator.java
|
051d35e41f7b21cd8a1608bdce10cf70952c6be4 |
|
14-Dec-2010 |
Chet Haase <chet@google.com> |
Adding TimeAnimator capability (hidden for now) This new class allows listeners to receive callbacks with elapsed time that are sent on the same animation updates as other animators in the system. It will allow simulations that go beyond the current animation system while handling the actual animation timing system and ensuring that those simulations sync up with other typical animations. Change-Id: Iac91c39634218793f6598a7dec5ed71dc9630258
/frameworks/base/core/java/android/animation/TimeAnimator.java
|