首页 > 其他分享 >鸿蒙开发之不申请权限写入图片到相册

鸿蒙开发之不申请权限写入图片到相册

时间:2024-12-18 15:21:32浏览次数:8  
标签:鸿蒙 相册 写入 保存 let fileIo 图片

写入图片到相册介绍

在上一篇中,猫林老师给大家分享了如何在不申请权限的情况下读取相册内容。这一篇教大家如何写入图片到相册。

这在应用开发中,也是一个很常见的场景,比如我们要做一个文件扫描的功能。那是不是得把扫描的结果保存到图库呢?再比如我们做一个美颜的功能,那把相册里的原始图片读取出来后,经过我们的美容处理,是不是还得把美容后的结果写入回相册呢?

所以这也是我们必须要学习和掌握的内容。其实写入相册也是HarmonyOS管控的比较严的一个权限,但好在HarmonyOS依然考虑到写入相册对于开发者而言也是一个非常常用的一个功能,因而提供了两种方案来实现图片保存到相册,分别是:

  1. 安全控件保存
  2. 弹窗授权保存

安全控件保存 - 基本使用

这其实就是HarmonyOS提供的一个类似按钮一样的组件,他叫SaveButton,在界面上放一个它即可轻松实现保存,我们先看看它长啥样。我们在界面上写一个SaveButton,如下图

image-20241215205345414

可以看到,从外形上看,就是一个带图标的按钮。当然,如果你要是觉得这个按钮的图标、文字不是你想要的,你还可以在使用时传递参数来修改。

对应的参数有

  • icon:设置图标,

    • 如果写SaveButton时写了{},并给了其他参数,唯独没给icon,则没有图标。
    • 如果要设置,仅能设置两个值,分别代表线条图标,填充图标。分别为:1
      1. SaveIconStyle.FULL_FILLED
      2. SaveIconStyle.LINES
    • 这两个值没太大变化可以理解为前一个线条粗一条,后一个线条细一点
  • text: 设置文字,但是仅提供固定的几个文字让你选择,无法自定义。可选择的文字见下表

    名称 说明
    DOWNLOAD 0 保存按钮的文字描述为“下载”。
    DOWNLOAD_FILE 1 保存按钮的文字描述为“下载文件”。
    SAVE 2 保存按钮的文字描述为“保存”。
    SAVE_IMAGE 3 保存按钮的文字描述为“保存图片”。
    SAVE_FILE 4 保存按钮的文字描述为“保存文件”。
    DOWNLOAD_AND_SHARE 5 保存按钮的文字描述为“下载分享”。
    RECEIVE 6 保存按钮的文字描述为“接收”。
    CONTINUE_TO_RECEIVE 7 保存按钮的文字描述为“继续接收”。
    SAVE_TO_GALLERY12+ 8 保存按钮的文字描述为“保存至图库”。
    EXPORT_TO_GALLERY12+ 9 保存按钮的文字描述为“导出”。
    QUICK_SAVE_TO_GALLERY12+ 10 保存按钮的文字描述为“快速保存图片”。
    RESAVE_TO_GALLERY12+ 11 保存按钮的文字描述为“重新保存”。

​ buttonType:设置按钮样式、胶囊、圆形、普通(跟按钮的三大样式一样)

相关文章

  • 鸿蒙开发:不申请权限,轻松将图片保存到设备相册
      在移动应用开发中,用户经常需要将某些图片保存到设备的相册中。鸿蒙(HarmonyOS)作为一个新兴的操作系统,提供了一套完整的API来帮助开发者实现这一功能。本文将详细介绍如何在鸿蒙应用中实现从网络下载图片并保存到用户的设备相册。环境准备  在开始之前,请确保您的开发......
  • 鸿蒙+next实现页签栏平板端适配
    鸿蒙next实现页签栏平板端适配1.在应用启动时通过updateBreakpoint获取当前窗口尺寸断点//根据当前窗口尺寸更新断点privateupdateBreakpoint(windowWidth:number):void{//拿到当前窗口对象获取当前所在displayId注释该代码原因:会在真机平板中报错//le......
  • 鸿蒙开发web组件开启深色模式与自定义 UserAgent
    鸿蒙开发web组件开启深色模式与自定义UserAgent设置深色模式ArkWeb支持对前端页面进行深色模式配置。通过darkMode()接口可以配置不同的深色模式,默认关闭。当深色模式开启时,Web将启用媒体查询prefers-color-scheme中网页所定义的深色样式,若网页未定义深色样式,则保持原状......
  • 鸿蒙开发:前端页面调用 ArkTS 函数全解析
    鸿蒙开发:前端页面调用ArkTS函数全解析JavaScriptProxy:前端与ArkTS交互的桥梁(一)功能概述JavaScriptProxy是ArkWeb提供的强大机制,它就像一座桥梁,允许开发者将ArkTS对象注册到前端页面,进而实现在前端页面中无缝调用这些对象的函数。这一机制极大地拓展了鸿蒙应用开发中前......
  • HarmonyOS鸿蒙开发 - 解决上下两栏白边 - 沉浸式效果
    鸿蒙应用开发从入门到入行预览器上下两栏白边自从HarmonyOS升级到release版后,很多同学会问猫林老师:为什么他的预览器上下有白边,为什么明明根容器写了宽高百分百但没铺满。如下图白边原因其实上面的白边,称之为状态栏。上面会放手机wifi信号、电池电量等信息。一般情况下......
  • 鸿蒙Flutter性能调优分析之帧渲染跟踪
    鸿蒙Flutter性能调优性能分析之帧渲染跟踪Flutter应用进行性能分析时,需利用分析工具捕获应用的trace数据,并对其进行分析。鉴于Flutter应用中可能会出现需要单独追踪某帧渲染的情况,如帧率卡顿或帧丢失,本文特介绍了一种针对单帧追踪的方法。分析工具常用的分析工具包括DevEcoStu......
  • 鸿蒙ArkWeb 跨域请求
    鸿蒙ArkWeb基础-跨域请求ArkWeb内核出于安全考虑,默认限制file协议和resource协议的跨域访问。这意味着,如果Web组件尝试加载来自不同域的file协议或resource协议资源,将会被拦截,从而导致资源无法加载。例如,假设您的Web组件部署在域A上,而您想要加载域B上的本地资源,如图片或脚本文......
  • 鸿蒙基础入门01
    基础入门1.交叉轴对齐方式(Cross-axisAlignment)在Flex布局中,交叉轴是与主轴垂直的方向。可以使用align-items和align-self来调整子元素在交叉轴上的对齐方式。常见对齐方式:flex-start:子元素从交叉轴的起始位置对齐。flex-end:子元素从交叉轴的末尾对齐。center:......
  • 鸿蒙Flutter怎样调试dart代码
    鸿蒙Flutter怎么样调试dart代码ets代码使用DevEco-Studio进行调试。dart代码可以使用vscode和AndroidStudio进行调试。flutter鸿蒙化版本调试时,需要加上参数,如:--local-engine=/Users/xxx/ohos/engine/src/out/ohos_debug_unopt_arm64使用vscode调试dart代......
  • 鸿蒙Flutter性能调优之性能分析定界
    鸿蒙Flutter性能调优之性能分析定界flutter鸿蒙化的工程,也可以使用devtools对Dart代码进行调试.前置条件OpenHarmonyNext系统前台运行Flutter页面分析工具DevEcoStudioProfilerSmartPerfFlutter线程介绍Flutter使用多个线程来完成其必要的工作,图层中仅展示了其中两......