Image组件如何设置缓存?

咨询描述: Image组件如何设置缓存? 咨询场景描述: Image组件如何设置缓存?避免二次渲染同一个URL时闪烁或者有没有平替方案。

阅读 782
1 个回答

image配置,关闭缓存:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-system-app-0000001821000765\#ZH-CN\_TOPIC\_0000001821000765\_\_setimagecachecount7说明:图片内存缓存,会统计到当前app

磁盘缓存:通过setImageFileCacheSize关闭磁盘缓存(默认打开,为100M)本地加载网络图片后可以通过hdc shell命令查看缓存到本地的文件流1.cd data/app2.find . -name"应用包名"3.cd 到对应cache的目录下如果想要看具体哪个URL缓存的位置,可以关闭隐私hilog -p off,抓日志可以看到说明:不同的设备可能缓存的路径不一样导出文件流:hdc file recv /data/app/el2/100/base/com.example.ohosapp/haps/entry/cache D:\image\hmos\_trunk\NOH\_GP\imageCachePNG文件标志是89 50 4E 47 0D 0A 1A 0A详见图片的文件头标识

配置cache缓存:参考示例应用photos,先import appimport app from ‘@system.app’然后可以在想要打开缓存的地方(比如在首页的aboutToAppear或onPageShow中)添加如下代码

onPageShow(): void {
  Log.showInfo(TAG, 'onPageShow');
  if (typeof globalThis.IsSetImageRawDataCacheSize === 'undefined') {
  Log.showInfo(TAG, 'onPageShow setImageRawDataCacheSize');
  // ImageRawDataCache:缓存解码前的原始数据和解码后的PixelMap
  app.setImageRawDataCacheSize(/* size */);
  globalThis.IsSetImageRawDataCacheSize = true;
}
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进