HarmonyOS 鸿蒙Next 如何判断图片展示控件传入的是Resource类型并保存至相册

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

HarmonyOS 鸿蒙Next 如何判断图片展示控件传入的是Resource类型并保存至相册

我现在有个图片展示控件,传入的可能是网络图片链接,也可能是资源文件,也可能pixelmap,现在我要怎么判断当前传入的是Resource类型,并且如何将Resource资源图片保存至相册

2 回复
目前您的Image组件传入的资源类型为 string | Resource | PixelMap 这三种,需求是判断当前传入的是否为Resource类型,Resource类型有id的,所以可以判断data.id是否存在来判断是否是Resource类型。 >

// 获取指定资源ID对应的媒体文件内容

let data: Resource = $r('app.media.icon')

getContext(this).resourceManager.getMediaContent(data.id).then(() => {})

  getData(data: string | PixelMap | Resource) {

    if (typeof data == ‘string’) {

      console.log(‘string’)

    } else {

      getContext(this).resourceManager.getMediaContent((data as Resource).id).then(() => {

        console.log(‘Resource’)

      }).catch(() => {

        console.log(‘PixelMap’)

      })

    }

  }

至于如何将图片保存至相册,看文档:

方法一:

使用安全控件创建媒体资源 

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/photoaccesshelper-savebutton-V5

添加图片和视频到用户相册中

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/photoaccesshelper-useralbum-guidelines-V5#%E6%B7%BB%E5%8A%A0%E5%9B%BE%E7%89%87%E5%92%8C%E8%A7%86%E9%A2%91%E5%88%B0%E7%94%A8%E6%88%B7%E7%9B%B8%E5%86%8C%E4%B8%AD

方法二:通过图片处理保存

https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-image-0000001821001457

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-image-V5#imagepacker

在HarmonyOS鸿蒙Next系统中,判断图片展示控件传入的是否为Resource类型并保存至相册,可以通过以下步骤实现:

  1. 类型判断:首先,你需要检查传入图片展示控件的数据类型。在鸿蒙系统中,Resource类型通常指的是从资源文件中加载的图片。你可以通过检查传入对象的类型或属性来确定其是否为Resource类型。例如,如果传入的是一个Uri对象,你可以检查这个Uri是否指向资源文件路径。

  2. 保存至相册:一旦确认传入的是Resource类型的图片,你可以使用鸿蒙系统提供的API将其保存到相册。这通常涉及到读取Resource内容,然后利用媒体存储API将其写入到设备的相册目录中。

  3. 权限处理:在保存图片到相册之前,确保你的应用已经获得了必要的权限,如读写存储权限。

  4. 实现代码:由于具体实现代码依赖于你的应用架构和鸿蒙SDK版本,这里无法给出详细代码。但你可以参考鸿蒙开发文档中的媒体存储和权限管理部分来实现这一功能。

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

回到顶部