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) 
      } 
    } 
  } 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.

其中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加载网络图片
396浏览 • 1回复 待解决
HarmonyOS 网络图片加载控件
494浏览 • 1回复 待解决
获取网络图片并保存到相册
2432浏览 • 1回复 待解决
HarmonyOS Image组件的网络图片缓存
753浏览 • 1回复 待解决
如何保存http网络图片本地
606浏览 • 1回复 待解决
Image组件如何加载网络图片
3214浏览 • 1回复 待解决
HarmonyOS ImageKnife加载网络图片失败
500浏览 • 1回复 待解决
HarmonyOS ImageView不能加载网络图片
407浏览 • 1回复 待解决
HarmonyOS Image 加载网络图片问题
1551浏览 • 1回复 待解决
HarmonyOS 网络图片加载不显示
922浏览 • 1回复 待解决
HarmonyOS 使用picker保存网络图片
324浏览 • 1回复 待解决
如何Pixmap保存到本地文件?
902浏览 • 1回复 待解决