From 39e080cdcab2b4903dc39b2534a1208337de25de Mon Sep 17 00:00:00 2001 From: tarsin Date: Tue, 6 Dec 2022 18:14:17 +0800 Subject: [PATCH] Fix thumb flicker --- .../com/hippo/ehviewer/ui/scene/GalleryDetailScene.java | 2 +- app/src/main/java/com/hippo/widget/LoadImageView.kt | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java index e8f5f707d..ad3a8b59f 100755 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java @@ -884,7 +884,7 @@ public class GalleryDetailScene extends CollapsingToolbarScene implements View.O Resources resources = getResources(); - mThumb.load(EhCacheKeyFactory.getThumbKey(gd.gid), gd.thumb); + mThumb.load(EhCacheKeyFactory.getThumbKey(gd.gid), gd.thumb, true); setTitle(EhUtils.getSuitableTitle(gd)); mUploader.setText(gd.uploader); mUploader.setAlpha(gd.disowned ? .5f : 1f); diff --git a/app/src/main/java/com/hippo/widget/LoadImageView.kt b/app/src/main/java/com/hippo/widget/LoadImageView.kt index fcc679ca4..3f78c56ae 100644 --- a/app/src/main/java/com/hippo/widget/LoadImageView.kt +++ b/app/src/main/java/com/hippo/widget/LoadImageView.kt @@ -126,7 +126,8 @@ open class LoadImageView @JvmOverloads constructor( mClipHeight = Integer.MIN_VALUE } - fun load(key: String, url: String) { + @JvmOverloads + fun load(key: String, url: String, isLoaded: Boolean = false) { if ((mRequest?.data as? String?) == url) return mFailed = false @@ -135,7 +136,7 @@ open class LoadImageView @JvmOverloads constructor( ImageRequest.Builder(context).data(url).memoryCacheKey(key).diskCacheKey(key).target( { onWait() }, { onFailure() }, - { onGetValue(it) } + { onGetValue(it, isLoaded) } ).build().also { load(it) } } @@ -153,7 +154,7 @@ open class LoadImageView @JvmOverloads constructor( clearDrawable() } - private fun onGetValue(drawable: Drawable) { + private fun onGetValue(drawable: Drawable, isLoaded: Boolean) { var drawable = drawable clearDrawable() @@ -162,7 +163,7 @@ open class LoadImageView @JvmOverloads constructor( } onPreSetImageDrawable(drawable, true) - if (isShown) { + if (isShown && !isLoaded) { val layers = arrayOfNulls(2) layers[0] = ColorDrawable(Color.TRANSPARENT) layers[1] = drawable