From 9fbea8f624d40d9cd26ca9248ddb5d46459bc865 Mon Sep 17 00:00:00 2001 From: madixin Date: Fri, 7 Jun 2024 08:55:09 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=AE=8C=E5=96=84readme=E5=AF=B9=E4=BA=8Esyn?= =?UTF-8?q?cLoad=E7=9A=84=E6=8F=8F=E8=BF=B0=202.=E5=9B=9E=E8=B0=83?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E5=AF=B9=E7=9B=B8=E5=90=8Ckey=E7=9A=84?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=EF=BC=8C=E9=83=BD=E9=9C=80=E8=A6=81=E5=88=86?= =?UTF-8?q?=E5=88=AB=E5=88=A4=E6=96=AD=E6=98=AF=E5=90=A6=E5=B7=B2=E7=BB=8F?= =?UTF-8?q?destroy=E4=BA=86=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: madixin --- README.md | 4 +- library/src/main/ets/ImageKnifeDispatcher.ets | 46 +++++++++---------- 2 files changed, 24 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 7d204f4..81b77b7 100644 --- a/README.md +++ b/README.md @@ -242,8 +242,8 @@ ImageKnifeComponent({ ImageKnifeOption: } }).width(100).height(100) ``` -#### 9.ImageKnifeComponent - syncLoad 的使用 -修复在消息列表场景,新增消息时头像出现闪动 +#### 9.ImageKnifeComponent - syncLoad +设置是否同步加载图片,默认是异步加载。建议加载尺寸较小的本地图片时将syncLoad设为true,因为耗时较短,在主线程上执行即可 ``` ImageKnifeComponent({ imageKnifeOption:{ diff --git a/library/src/main/ets/ImageKnifeDispatcher.ets b/library/src/main/ets/ImageKnifeDispatcher.ets index ab48cd4..56b81c3 100644 --- a/library/src/main/ets/ImageKnifeDispatcher.ets +++ b/library/src/main/ets/ImageKnifeDispatcher.ets @@ -284,32 +284,30 @@ export class ImageKnifeDispatcher { // todo 判断request生命周期,已销毁的不需要再绘制 // key相同的request,一起绘制 requestList.forEach((requestWithSource: ImageKnifeRequestWithSource) => { - if (requestWithSource.request.requestState === ImageKnifeRequestState.DESTROY) { - return; - } - // 画主图 - if (requestWithSource.source === ImageKnifeRequestSource.SRC || - requestWithSource.source === ImageKnifeRequestSource.ERROR_HOLDER - || (requestWithSource.source === ImageKnifeRequestSource.PLACE_HOLDER && - requestWithSource.request.requestState === ImageKnifeRequestState.PROGRESS)) { - LogUtil.log("ImageKnife_DataTime_getAndShowImage_showPixelMap.start:"+currentRequest.imageKnifeOption.loadSrc) - requestWithSource.request.ImageKnifeRequestCallback.showPixelMap(requestWithSource.request.componentVersion, - ImageKnifeData.source, requestWithSource.source); - LogUtil.log("ImageKnife_DataTime_getAndShowImage_showPixelMap.end:"+currentRequest.imageKnifeOption.loadSrc) - } - - if (requestWithSource.source == ImageKnifeRequestSource.SRC) { - requestWithSource.request.requestState = ImageKnifeRequestState.COMPLETE; - if (requestWithSource.request.imageKnifeOption.onLoadListener && - requestWithSource.request.imageKnifeOption.onLoadListener.onLoadSuccess) { - // 回调请求成功 - requestWithSource.request.imageKnifeOption.onLoadListener.onLoadSuccess(ImageKnifeData.source,ImageKnifeData.imageWidth,ImageKnifeData.imageHeight); - LogUtil.log("ImageKnife_DataTime_getAndShowImage_onLoadSuccess:"+currentRequest.imageKnifeOption.loadSrc) + if (requestWithSource.request.requestState !== ImageKnifeRequestState.DESTROY) { + // 画主图 + if (requestWithSource.source === ImageKnifeRequestSource.SRC || + requestWithSource.source === ImageKnifeRequestSource.ERROR_HOLDER + || (requestWithSource.source === ImageKnifeRequestSource.PLACE_HOLDER && + requestWithSource.request.requestState === ImageKnifeRequestState.PROGRESS)) { + LogUtil.log("ImageKnife_DataTime_getAndShowImage_showPixelMap.start:"+currentRequest.imageKnifeOption.loadSrc) + requestWithSource.request.ImageKnifeRequestCallback.showPixelMap(requestWithSource.request.componentVersion, + ImageKnifeData.source, requestWithSource.source); + LogUtil.log("ImageKnife_DataTime_getAndShowImage_showPixelMap.end:"+currentRequest.imageKnifeOption.loadSrc) } - } else if (requestWithSource.source == ImageKnifeRequestSource.ERROR_HOLDER) { - requestWithSource.request.requestState = ImageKnifeRequestState.ERROR; - } + if (requestWithSource.source == ImageKnifeRequestSource.SRC) { + requestWithSource.request.requestState = ImageKnifeRequestState.COMPLETE; + if (requestWithSource.request.imageKnifeOption.onLoadListener && + requestWithSource.request.imageKnifeOption.onLoadListener.onLoadSuccess) { + // 回调请求成功 + requestWithSource.request.imageKnifeOption.onLoadListener.onLoadSuccess(ImageKnifeData.source,ImageKnifeData.imageWidth,ImageKnifeData.imageHeight); + LogUtil.log("ImageKnife_DataTime_getAndShowImage_onLoadSuccess:"+currentRequest.imageKnifeOption.loadSrc) + } + } else if (requestWithSource.source == ImageKnifeRequestSource.ERROR_HOLDER) { + requestWithSource.request.requestState = ImageKnifeRequestState.ERROR; + } + } }); this.executingJobMap.remove(memoryKey);