summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wei <markwei@google.com>2014-02-07 10:46:58 -0800
committerMark Wei <markwei@google.com>2014-02-07 10:50:50 -0800
commit9024423249c9b1779f523cc4fe757fda2d205844 (patch)
tree7ec7778dc6e1489469354c3419773c56e33cbb1a
parentf19fbf57153edb48f001bf8e01da8a714947cfe1 (diff)
downloadbitmap-9024423249c9b1779f523cc4fe757fda2d205844.tar.gz
Allow setting transient state on BitmapDrawableImageView so we don't unbind()
during animations. Change-Id: I9275ef69f52058de1f6a1b3bb574b9fd5e030c82
-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();
+ }
}
}