From 9024423249c9b1779f523cc4fe757fda2d205844 Mon Sep 17 00:00:00 2001 From: Mark Wei Date: Fri, 7 Feb 2014 10:46:58 -0800 Subject: Allow setting transient state on BitmapDrawableImageView so we don't unbind() during animations. Change-Id: I9275ef69f52058de1f6a1b3bb574b9fd5e030c82 --- .../android/bitmap/view/BitmapDrawableImageView.java | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'src/com') diff --git a/src/com/android/bitmap/view/BitmapDrawableImageView.java b/src/com/android/bitmap/view/BitmapDrawableImageView.java index 67ef3eb..37332e0 100644 --- a/src/com/android/bitmap/view/BitmapDrawableImageView.java +++ b/src/com/android/bitmap/view/BitmapDrawableImageView.java @@ -32,6 +32,7 @@ import com.android.bitmap.drawable.BasicBitmapDrawable; */ public class BitmapDrawableImageView extends ImageView { private BasicBitmapDrawable mDrawable; + private boolean mAttachedToWindow; public BitmapDrawableImageView(final Context context) { this(context, null); @@ -103,9 +104,26 @@ public class BitmapDrawableImageView extends ImageView { mDrawable = null; } + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + mAttachedToWindow = true; + } + @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); - unbindDrawable(); + mAttachedToWindow = false; + if (!hasTransientState()) { + unbindDrawable(); + } + } + + @Override + public void setHasTransientState(boolean hasTransientState) { + super.setHasTransientState(hasTransientState); + if (!hasTransientState && !mAttachedToWindow) { + unbindDrawable(); + } } } -- cgit v1.2.3