summaryrefslogtreecommitdiffstats
path: root/core/java/android/widget/ImageView.java
diff options
context:
space:
mode:
authorAdam Powell <adamp@google.com>2012-08-09 15:08:33 -0700
committerAdam Powell <adamp@google.com>2012-08-09 15:09:53 -0700
commitf96ce0261326d1637e0111eaddde725ed94f2163 (patch)
treee70b0264e711304783ca347a95d2debf4e94ac4d /core/java/android/widget/ImageView.java
parent2c02933b13b426637808d3d4fd57aea1ff11011a (diff)
downloadframeworks_base-f96ce0261326d1637e0111eaddde725ed94f2163.zip
frameworks_base-f96ce0261326d1637e0111eaddde725ed94f2163.tar.gz
frameworks_base-f96ce0261326d1637e0111eaddde725ed94f2163.tar.bz2
Some simple skip-layout optimizations for ImageView
Mirror the optimization from setImageDrawable into setImageResource and setImageURI where we won't requestLayout() if the drawable's size didn't change. Bug 6359116 Change-Id: Iaae2100f3bddb2737628e31483b471c9e22d945f
Diffstat (limited to 'core/java/android/widget/ImageView.java')
-rw-r--r--core/java/android/widget/ImageView.java22
1 files changed, 18 insertions, 4 deletions
diff --git a/core/java/android/widget/ImageView.java b/core/java/android/widget/ImageView.java
index f259597..87396fb 100644
--- a/core/java/android/widget/ImageView.java
+++ b/core/java/android/widget/ImageView.java
@@ -342,8 +342,15 @@ public class ImageView extends View {
updateDrawable(null);
mResource = resId;
mUri = null;
+
+ final int oldWidth = mDrawableWidth;
+ final int oldHeight = mDrawableHeight;
+
resolveUri();
- requestLayout();
+
+ if (oldWidth != mDrawableWidth || oldHeight != mDrawableHeight) {
+ requestLayout();
+ }
invalidate();
}
}
@@ -367,8 +374,15 @@ public class ImageView extends View {
updateDrawable(null);
mResource = 0;
mUri = uri;
+
+ final int oldWidth = mDrawableWidth;
+ final int oldHeight = mDrawableHeight;
+
resolveUri();
- requestLayout();
+
+ if (oldWidth != mDrawableWidth || oldHeight != mDrawableHeight) {
+ requestLayout();
+ }
invalidate();
}
}
@@ -383,8 +397,8 @@ public class ImageView extends View {
mResource = 0;
mUri = null;
- int oldWidth = mDrawableWidth;
- int oldHeight = mDrawableHeight;
+ final int oldWidth = mDrawableWidth;
+ final int oldHeight = mDrawableHeight;
updateDrawable(drawable);