summaryrefslogtreecommitdiffstats
path: root/core/java/android/animation
diff options
context:
space:
mode:
authorChet Haase <chet@google.com>2011-02-16 16:23:29 -0800
committerChet Haase <chet@google.com>2011-02-16 16:30:21 -0800
commite9140a72b1059574046a624b471b2c3a35806496 (patch)
tree02218c57a0947be6ab5c51b1d17a38b5cd2759e0 /core/java/android/animation
parent260a13a95edbe41fb8042b96b8c35a8a65546ec0 (diff)
downloadframeworks_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.java9
-rw-r--r--core/java/android/animation/ObjectAnimator.java12
-rw-r--r--core/java/android/animation/PropertyValuesHolder.java5
-rwxr-xr-xcore/java/android/animation/ValueAnimator.java11
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;
+ }
}