summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChet Haase <chet@google.com>2015-06-17 23:06:58 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-06-17 23:07:17 +0000
commit45bb0ca49a052cd6da3e4ced7709372972abdf55 (patch)
tree7dbc93f3b59106e618ba77d6a461c5d3994e320b
parent8872ca4d558a8546c9c934f32fd37d261a6f32d1 (diff)
parent8473f5a768a1eafda92c81d208c00db334dfa9d4 (diff)
downloadframeworks_base-45bb0ca49a052cd6da3e4ced7709372972abdf55.zip
frameworks_base-45bb0ca49a052cd6da3e4ced7709372972abdf55.tar.gz
frameworks_base-45bb0ca49a052cd6da3e4ced7709372972abdf55.tar.bz2
Merge "ImageView updates cached drawable dimensions when drawable updates" into mnc-dev
-rw-r--r--core/java/android/widget/ImageView.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/core/java/android/widget/ImageView.java b/core/java/android/widget/ImageView.java
index 6b28f89..e0b2395 100644
--- a/core/java/android/widget/ImageView.java
+++ b/core/java/android/widget/ImageView.java
@@ -216,7 +216,7 @@ public class ImageView extends View {
protected boolean verifyDrawable(Drawable dr) {
return mDrawable == dr || super.verifyDrawable(dr);
}
-
+
@Override
public void jumpDrawablesToCurrentState() {
super.jumpDrawablesToCurrentState();
@@ -226,6 +226,15 @@ public class ImageView extends View {
@Override
public void invalidateDrawable(Drawable dr) {
if (dr == mDrawable) {
+ if (dr != null) {
+ // update cached drawable dimensions if they've changed
+ final int w = dr.getIntrinsicWidth();
+ final int h = dr.getIntrinsicHeight();
+ if (w != mDrawableWidth || h != mDrawableHeight) {
+ mDrawableWidth = w;
+ mDrawableHeight = h;
+ }
+ }
/* we invalidate the whole view in this case because it's very
* hard to know where the drawable actually is. This is made
* complicated because of the offsets and transformations that