From 831ef9417ce96fbf6f4dd842d87bf59e8964da91 Mon Sep 17 00:00:00 2001 From: zgf Date: Thu, 20 Jun 2024 16:18:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=A0=E4=BD=8D=E5=9B=BE=E4=BB=8E=E5=86=85?= =?UTF-8?q?=E5=AD=98=E8=8E=B7=E5=8F=96=E6=8F=90=E5=89=8D=E5=88=B0=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E9=98=9F=E5=88=97=E5=89=8D=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zgf --- CHANGELOG.md | 1 + library/src/main/ets/ImageKnifeDispatcher.ets | 15 +++++++++------ library/src/main/ets/ImageKnifeRequest.ets | 1 + 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 843383b..e5570da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ - svg解码单位改为px - 修复预加载接口preLoadCache传ImageKnifeOption失效 - 文件缓存初始化接口新增目录参数 +- 占位图从内存获取提前到判断队列前面 ## 3.0.0-rc.7 - 修复成功回调获取不到宽高 diff --git a/library/src/main/ets/ImageKnifeDispatcher.ets b/library/src/main/ets/ImageKnifeDispatcher.ets index 03d7a70..b67f4a0 100644 --- a/library/src/main/ets/ImageKnifeDispatcher.ets +++ b/library/src/main/ets/ImageKnifeDispatcher.ets @@ -103,8 +103,13 @@ export class ImageKnifeDispatcher { if (this.showFromMemomry(request, request.imageKnifeOption.loadSrc, ImageKnifeRequestSource.SRC)) { return } - - //2.判断是否要排队 + // 2.内存获取占位图 + if (request.imageKnifeOption.placeholderSrc !== undefined) { + if (this.showFromMemomry(request, request.imageKnifeOption.placeholderSrc, ImageKnifeRequestSource.PLACE_HOLDER)) { + request.drawPlayHolderSuccess = true + } + } + //3.判断是否要排队 if (this.executingJobMap.length > this.maxRequests) { this.jobQueue.add(request) return @@ -115,10 +120,8 @@ export class ImageKnifeDispatcher { executeJob(request: ImageKnifeRequest): void { LogUtil.log("ImageKnife_DataTime_executeJob.start:" + request.imageKnifeOption.loadSrc) // 加载占位符 - if (request.imageKnifeOption.placeholderSrc !== undefined) { - if (this.showFromMemomry(request, request.imageKnifeOption.placeholderSrc, ImageKnifeRequestSource.PLACE_HOLDER) === false) { - this.getAndShowImage(request, request.imageKnifeOption.placeholderSrc, ImageKnifeRequestSource.PLACE_HOLDER) - } + if (request.imageKnifeOption.placeholderSrc !== undefined && request.drawPlayHolderSuccess == false) { + this.getAndShowImage(request, request.imageKnifeOption.placeholderSrc, ImageKnifeRequestSource.PLACE_HOLDER) } // 加载主图 diff --git a/library/src/main/ets/ImageKnifeRequest.ets b/library/src/main/ets/ImageKnifeRequest.ets index 071c71b..b7c98ae 100644 --- a/library/src/main/ets/ImageKnifeRequest.ets +++ b/library/src/main/ets/ImageKnifeRequest.ets @@ -21,6 +21,7 @@ export class ImageKnifeRequest { requestState: ImageKnifeRequestState = ImageKnifeRequestState.PROGRESS componentWidth: number = 0 componentHeight: number = 0 + drawPlayHolderSuccess: boolean = false imageKnifeOption: ImageKnifeOption context: common.UIAbilityContext ImageKnifeRequestCallback: ImageKnifeRequestCallback