HarmonyOS 鸿蒙Next Image控件无法更新新的图片

发布于 1周前 作者 yibo5220 来自 鸿蒙OS

HarmonyOS 鸿蒙Next Image控件无法更新新的图片 我有一个上传头像的需求,图片已经上传成功,但是Image控件就是不会更新出最新上传的图片,结束app进程重新打开也不行。

但是,把app卸载了重新安装后就能显示最新图片。

Image的图片链接已经做了重置,又赋值,imagePath这个@state变量驱动不了Image加载最新图片

3 回复

用这种形式定义图片可以更新 img:Resource = $r('app.media.img')

如果必须要用到PixelMap 只需要改变下数据绑定类型即可

demo:

import { image } from '@kit.ImageKit';
@Component
struct ImgItem {
  @Prop boo:Boolean  = true
  @Link  imagePixelMap: image.PixelMap | undefined
  @Prop title: string = " "

  build() {
    Column() {
      Text(this.title) 
      Image(this.imagePixelMap).width(100).height(100).backgroundColor("#f00")
    }
  }

}
@Entry
@Component
struct Index {
  @State imagePixelMap: image.PixelMap | undefined = undefined
  @State imagePixelMap2: image.PixelMap | undefined = undefined
  @State title: string = ""
  @State boo:Boolean  = true

  async aboutToAppear() {
    this.imagePixelMap = await this.getPixmapFromMedia($r('app.media.startIcon'))
    this.title = "测试"
  }

  build() {
    Column() {
      ImgItem({
        boo:this.boo,
        imagePixelMap: this.imagePixelMap,
        title: this.title
      }).margin({ top: 50 })
      Button("更换").onClick(async () => {
        this.imagePixelMap = await this.getPixmapFromMedia($r('app.media.icon'))
        this.title = "测试3"
        this.boo = !this.boo
      }).margin({ top: 14 })
     if (this.boo ) {
       Image(this.imagePixelMap).width(100).height(100).backgroundColor("#f00")
     } else  {
       Image(this.imagePixelMap2).width(100).height(100).backgroundColor("#f00")
     }

    }.height("100%").width("100%")
  }
  public  async getPixmapFromMedia(resource: Resource) {
    let unit8Array = await getContext(this)?.resourceManager?.getMediaContent({
      bundleName: resource.bundleName,
      moduleName: resource.moduleName,
      id: resource.id
    })
    let imageSource = image.createImageSource(unit8Array.buffer.slice(0, unit8Array.buffer.byteLength))
    let createPixelMap: image.Pix

更多关于HarmonyOS 鸿蒙Next Image控件无法更新新的图片的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对HarmonyOS(鸿蒙)系统中Next Image控件无法更新新图片的问题,这里提供一个可能的解决方案:

在鸿蒙系统中,如果Next Image控件无法更新显示新图片,可能是由于图片资源未正确加载或者控件的刷新机制未触发。首先,请确保你已经正确设置了图片的路径和名称,并且新图片已经成功添加到项目中。

接下来,尝试以下步骤:

  1. 检查图片资源:确认新图片是否已经放置在正确的资源目录下,并且文件名和路径在代码中引用无误。

  2. 刷新控件:在某些情况下,你可能需要手动刷新Next Image控件以显示新图片。可以尝试调用控件的刷新方法(如果鸿蒙API提供了此类方法)或者重新设置图片资源来触发刷新。

  3. 检查代码逻辑:确保在更新图片的代码逻辑中没有错误,比如路径错误、资源未加载等。

  4. 重启应用:有时候,简单的重启应用可以解决资源更新不及时的问题。

如果以上步骤仍然无法解决问题,可能是鸿蒙系统或者开发框架的bug,或者是其他未知原因导致的。此时,建议联系鸿蒙系统的官方技术支持团队获取更专业的帮助。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部