diff options
| author | Chet Haase <chet@google.com> | 2011-02-16 16:23:29 -0800 |
|---|---|---|
| committer | Chet Haase <chet@google.com> | 2011-02-16 16:30:21 -0800 |
| commit | e9140a72b1059574046a624b471b2c3a35806496 (patch) | |
| tree | 02218c57a0947be6ab5c51b1d17a38b5cd2759e0 /core/java/android/animation | |
| parent | 260a13a95edbe41fb8042b96b8c35a8a65546ec0 (diff) | |
| download | frameworks_base-e9140a72b1059574046a624b471b2c3a35806496.zip frameworks_base-e9140a72b1059574046a624b471b2c3a35806496.tar.gz frameworks_base-e9140a72b1059574046a624b471b2c3a35806496.tar.bz2 | |
Fix invalidation bug with View bounds properties
When setLeft/Right/Top/Bottom() functions were called on View,
invalidation was only happening at the parent level. When an
app is hardware accelerated, this means that the view's display
list is not being recreated. So views that were changing size due
to these calls were not getting redrawn properly, causing some
artifacts in animations (especially LayoutTransition, which
calls these setters).
Fix is to invalidate the child instead of just the child's bounds
in the parent.
Change-Id: Ic8b2a5db519345dce617f914c2214738f22031b2
Diffstat (limited to 'core/java/android/animation')
| -rw-r--r-- | core/java/android/animation/KeyframeSet.java | 9 | ||||
| -rw-r--r-- | core/java/android/animation/ObjectAnimator.java | 12 | ||||
| -rw-r--r-- | core/java/android/animation/PropertyValuesHolder.java | 5 | ||||
| -rwxr-xr-x | core/java/android/animation/ValueAnimator.java | 11 |
4 files changed, 37 insertions, 0 deletions
diff --git a/core/java/android/animation/KeyframeSet.java b/core/java/android/animation/KeyframeSet.java index fa61b71..6172aab 100644 --- a/core/java/android/animation/KeyframeSet.java +++ b/core/java/android/animation/KeyframeSet.java @@ -212,4 +212,13 @@ class KeyframeSet { // shouldn't reach here return mLastKeyframe.getValue(); } + + @Override + public String toString() { + String returnVal = " "; + for (int i = 0; i < mNumKeyframes; ++i) { + returnVal += mKeyframes.get(i).getValue() + " "; + } + return returnVal; + } } diff --git a/core/java/android/animation/ObjectAnimator.java b/core/java/android/animation/ObjectAnimator.java index d038cd6..b8a7cb2 100644 --- a/core/java/android/animation/ObjectAnimator.java +++ b/core/java/android/animation/ObjectAnimator.java @@ -394,4 +394,16 @@ public final class ObjectAnimator extends ValueAnimator { final ObjectAnimator anim = (ObjectAnimator) super.clone(); return anim; } + + @Override + public String toString() { + String returnVal = "ObjectAnimator@" + Integer.toHexString(hashCode()) + ", target " + + mTarget; + if (mValues != null) { + for (int i = 0; i < mValues.length; ++i) { + returnVal += "\n " + mValues[i].toString(); + } + } + return returnVal; + } } diff --git a/core/java/android/animation/PropertyValuesHolder.java b/core/java/android/animation/PropertyValuesHolder.java index 0c30aad..6f91fc0 100644 --- a/core/java/android/animation/PropertyValuesHolder.java +++ b/core/java/android/animation/PropertyValuesHolder.java @@ -578,6 +578,11 @@ public class PropertyValuesHolder implements Cloneable { return mAnimatedValue; } + @Override + public String toString() { + return mPropertyName + ": " + mKeyframeSet.toString(); + } + /** * Utility method to derive a setter/getter method name from a property name, where the * prefix is typically "set" or "get" and the first letter of the property name is diff --git a/core/java/android/animation/ValueAnimator.java b/core/java/android/animation/ValueAnimator.java index 5a8a74a..2e44d6d 100755 --- a/core/java/android/animation/ValueAnimator.java +++ b/core/java/android/animation/ValueAnimator.java @@ -1207,4 +1207,15 @@ public class ValueAnimator extends Animator { sPendingAnimations.get().clear(); sDelayedAnims.get().clear(); } + + @Override + public String toString() { + String returnVal = "ValueAnimator@" + Integer.toHexString(hashCode()); + if (mValues != null) { + for (int i = 0; i < mValues.length; ++i) { + returnVal += "\n " + mValues[i].toString(); + } + } + return returnVal; + } } |
