HarmonyOS如何使用预加载技术将网络图片缓存到本地?

假设正在开发一个首页皮肤,这个皮肤包含了很多图片和图标。会对皮肤中的网络图片进行提前批量缓存,等待所有图片缓存成功回调之后,再将皮肤展示出来。ArkUI中是否有类似的预加载实现方式?

HarmonyOS
2024-08-09 11:15:31
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

预加载网络图片,需要加入缓存可参考以下链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-system-app-0000001821000765#ZH-CN_TOPIC_0000001857876165__setimagerawdatacachesize7

可参考以下demo:

import app, { AppResponse } from '@system.app' 
@Entry 
@Component 
struct Page3 { 
  //app.setImageRawDataCacheSize方法需要在由@Entry标记的页面,onPageShow或aboutToAppear里面设置才生效 
  onPageShow() { 
    // 设置解码前图片数据内存缓存上限为100MB (100MB=100*1024*1024B=104857600B) 
    app.setImageRawDataCacheSize(104857600) 
    console.info('Application onPageShow') 
  } 
  onDestroy() { 
    console.info('Application onDestroy') 
  } 
  @State alt:Resource =$r('app.media.foreground') 
 
  build() { 
    Row() { 
      Column() { 
        Image($r('')) 
          .onError(()=>{ 
            console.log('demoTest') 
            this.alt = $r('app.media.icon') 
          }) 
          .alt(this.alt) 
          .width(100) 
          .height(100) 
      } 
    } 
  } 
}

其中Image($r(’’))假设是网络图片目前的Image组件加载网络图片第一次会读取网络图片,后续在加载图片会从缓存中读取。

若网络上加载比较慢的话,这边建议将网络图片下载到本地,再由本地进行加载展示;这边有相关的下载网络资源文件至应用文件目录的demo链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/app-file-upload-download-0000001820880061#ZH-CN_TOPIC_0000001857876893__下载网络资源文件至应用文件目录

分享
微博
QQ
微信
回复
2024-08-09 16:43:03
相关问题
HarmonyOS Image加载网络图片
90浏览 • 1回复 待解决
HarmonyOS 网络图片加载控件
241浏览 • 1回复 待解决
HarmonyOS Image组件的网络图片缓存
379浏览 • 1回复 待解决
如何保存http网络图片本地
347浏览 • 1回复 待解决
获取网络图片并保存到相册
1943浏览 • 1回复 待解决
Image组件如何加载网络图片
2923浏览 • 1回复 待解决
HarmonyOS ImageKnife加载网络图片失败
249浏览 • 1回复 待解决
HarmonyOS Image 加载网络图片问题
1066浏览 • 1回复 待解决
HarmonyOS 网络图片加载不显示
467浏览 • 1回复 待解决
HarmonyOS ImageView不能加载网络图片
84浏览 • 1回复 待解决
HarmonyOS 使用picker保存网络图片
83浏览 • 1回复 待解决