HarmonyOS鸿蒙Next中如何将自定义组件CustomView转换成图片并保存到相册

HarmonyOS鸿蒙Next中如何将自定义组件CustomView转换成图片并保存到相册 求一个解决方案

3 回复
你好。

方案思路是先组件截图,之后再调用系统picker组件进行保存。

详情参考:
- [【HarmonyOS】鸿蒙应用实现截屏,截图_harmonyos 截屏监听-CSDN博客](https://blog.csdn.net/superherowupan/article/details/140936296?spm=1011.2415.3001.5331)
- [【HarmonyOS NEXT】 鸿蒙图片或视频保存相册_鸿蒙 保存图片到相册-CSDN博客](https://blog.csdn.net/superherowupan/article/details/144354127?spm=1011.2415.3001.5331)

更多关于HarmonyOS鸿蒙Next中如何将自定义组件CustomView转换成图片并保存到相册的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


感谢,该方案可行,就是权限是个问题。
目前是将截屏到的PixelMap保存到沙箱中再通过临时权限存到相册中,

在HarmonyOS鸿蒙Next中,将自定义组件CustomView转换成图片并保存到相册,可以通过以下步骤实现:

  1. 获取组件快照:使用Componentsnapshot方法获取组件的位图快照。
PixelMap pixelMap = customView.snapshot();
  1. 将PixelMap转换为ImageSource:使用ImageSourcecreate方法将PixelMap转换为ImageSource
ImageSource imageSource = ImageSource.create(pixelMap, null);
  1. 保存图片到相册:使用ImagePackerImageSource打包为图片文件,并保存到相册。
ImagePacker imagePacker = ImagePacker.create();
File file = new File("/sdcard/Pictures/custom_view.png");
imagePacker.packToFile(imageSource, file, new PackOptions());
  1. 通知相册更新:使用MediaScannerConnection通知相册更新。
MediaScannerConnection.scanFile(context, new String[]{file.getPath()}, null, null);
回到顶部