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
相关问题
获取网络图片并保存到相册
1167浏览 • 1回复 待解决
HarmonyOS Image 加载网络图片问题
395浏览 • 1回复 待解决
Image组件如何加载网络图片
2375浏览 • 1回复 待解决
HarmonyOS 请求网络图片
239浏览 • 1回复 待解决
关于Image组件加载网络图片的问题
305浏览 • 1回复 待解决
如何Pixmap保存到本地文件?
328浏览 • 1回复 待解决
页面加载前获取网络图片的宽高
540浏览 • 1回复 待解决
HarmonyOS加载Image组件的图片
312浏览 • 1回复 待解决
如何保存网络图片到相册
585浏览 • 1回复 待解决
HarmonyOS 保存网络图片,图库更新
142浏览 • 1回复 待解决
如何获取网络图片的尺寸?
295浏览 • 1回复 待解决
HarmonyOS Image组件无法显示网络图片
585浏览 • 1回复 待解决
HarmonyOS Image组件网络图片不显示
195浏览 • 1回复 待解决