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

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

阅读 720
1 个回答

关于预加载网络图片,需要加入缓存可参考以下链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-refere...
可参考以下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...下载网络资源文件至应用文件目录

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题