summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/com/android/bitmap/view/BitmapDrawableImageView.java20
1 files changed, 19 insertions, 1 deletions
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);
@@ -104,8 +105,25 @@ public class BitmapDrawableImageView extends ImageView {
}
@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();
+ }
}
}