diff options
| author | Chet Haase <chet@google.com> | 2015-06-17 23:06:58 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-06-17 23:07:17 +0000 |
| commit | 45bb0ca49a052cd6da3e4ced7709372972abdf55 (patch) | |
| tree | 7dbc93f3b59106e618ba77d6a461c5d3994e320b | |
| parent | 8872ca4d558a8546c9c934f32fd37d261a6f32d1 (diff) | |
| parent | 8473f5a768a1eafda92c81d208c00db334dfa9d4 (diff) | |
| download | frameworks_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.java | 11 |
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 |
