diff --git a/app/src/main/java/com/hippo/image/Image.kt b/app/src/main/java/com/hippo/image/Image.kt index 868f63911..40701670a 100644 --- a/app/src/main/java/com/hippo/image/Image.kt +++ b/app/src/main/java/com/hippo/image/Image.kt @@ -53,6 +53,8 @@ class Image private constructor(source: Source?, val release: () -> Unit = {}) { ) } // Should we lazy decode it? } + if (mObtainedDrawable is BitmapDrawable) + release() } val width = mObtainedDrawable!!.intrinsicWidth @@ -68,8 +70,9 @@ class Image private constructor(source: Source?, val release: () -> Unit = {}) { (mObtainedDrawable as BitmapDrawable?)?.bitmap?.recycle() } mObtainedDrawable?.callback = null + if (mObtainedDrawable is AnimatedImageDrawable) + release() mObtainedDrawable = null - release() } fun start() {