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