##DevEco Studio##如何让模拟器里有图片?【图片下载法】
API9和API12在模拟器上,有一个巨大的区别,那就是API9(开发工具3的版本),他的模拟器里有一个拍照功能(再往前的版本里甚至还有浏览器,可以通过浏览器下载图片),可以通过拍照功能让相册里有图片,从而测试图片相关的功能。在API12的模拟器中,虽然有图库,但是没有拍照,也没有浏览器……看起来似乎没有办法在模拟器里测试图片的相关功能。
不过大部分用做原生鸿蒙系统项目的学生并不具备有真机调试的能力……所以这个问题还是要想办法解决
前面的文章我分享了一个【文件拖入法】,这个方法虽然简单,但是问题就是在于“图片”属于“文件”,而不是在图库中,没办法进行与图片相关的一些操作。
那么在平时的开发过程中,有一次我开发的项目需要将图片下载到本地,通过文档,我了解到了“安全控件”中的“保存控件“,简单来说,就是可以超级方便的将图片进行保存,相比于传统的方案,代码中不需要考虑授权,不需要考虑选择文件的相关操作。经过测试,完全可以通过这个"保存控件",将图片下载到模拟器的图库中用于后续的操作!
那么具体的实现方案如下:
1. 去创建一个新的项目,随便起个名字
2. 把你想用来测试的图片,放到本地resources/base/media文件夹下
3. 加入“保存控件”,代码如下:
`SaveButton() .padding({top: 12, bottom: 12, left: 24, right: 24}) .onClick(async (event: ClickEvent, result: SaveButtonOnClickResult) => { if (result === SaveButtonOnClickResult.SUCCESS) { const context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext; // 免去权限申请和权限请求等环节,获得临时授权,保存对应图片。 savePhotoToGallery(context); } else { promptAction.showToast({ message: '设置权限失败!' }) } })
async function savePhotoToGallery(context: common.UIAbilityContext) { let helper = photoAccessHelper.getPhotoAccessHelper(context); try { // onClick触发后10秒内通过createAsset接口创建图片文件,10秒后createAsset权限收回。 let uri = await helper.createAsset(photoAccessHelper.PhotoType.IMAGE, 'jpg'); // 使用uri打开文件,可以持续写入内容,写入过程不受时间限制。 let file = await fileIo.open(uri, fileIo.OpenMode.READ_WRITE | fileIo.OpenMode.CREATE); // r('app.media.startIcon')需要替换为开发者所需的图像资源文件。 context.resourceManager.getMediaContent(r('app.media.startIcon').id, 0) .then(async value => { let media = value.buffer; // 写到媒体库文件中。 await fileIo.write(file.fd, media); await fileIo.close(file.fd); promptAction.showToast({ message: '已保存至相册!' }); }); } catch (error) { const err: BusinessError = error as BusinessError; console.error(Failed to save photo. Code is ${err.code}, message is ${err.message}
); } } `
4. 启动模拟器并运行项目,点击按钮下载即可
5. 再运行你自己的项目,去选择图片即可
这时候就能看到刚才的图片了
- 0回答
- 0粉丝
- 0关注
- ##DevEco Studio##如何让模拟器里有图片?【文件拖入法】
- 鸿蒙Flutter实战:12-使用模拟器开发调试
- 模拟器快速上手,助力HarmonyOS应用/服务高效开发
- 如何干净地卸载DevEco Studio
- # 最新 HUAWEI DevEco Studio 使用技巧
- 最新 HUAWEI DevEco Studio 调试技巧
- 学习元服务基础—— DevEco Studio
- 最新 HUAWEI DevEco Studio 调试技巧
- 最新 HUAWEI DevEco Studio 使用技巧
- 「Mac畅玩鸿蒙与硬件7」鸿蒙开发环境配置篇7 - 使用命令行工具和本地模拟器管理项目
- 鸿蒙开发 HarmonyOS DevEco Studio 常用快捷键
- DevEco Studio 5.0.1 Beta3发布
- HarmonyOS Next开发利器:DevEco Studio高效编码技巧 🚀
- 如何调用系统拍照并获取图片
- 最新版 DevEco Studio:鸿蒙5应用开发的得力伙伴