flutter如何在Android上保存图片到相册
我在Flutter中开发了一个功能,需要将生成的图片保存到Android设备的相册里。目前使用了image_gallery_saver插件,但保存后在图库里找不到图片,只能通过文件管理器查看。请问正确的保存方法是什么?是否需要额外配置权限或指定特定目录?
2 回复
在Flutter中将图片保存到Android相册,可以使用image_gallery_saver插件:
- 添加依赖:
dependencies:
image_gallery_saver: ^2.1.1
- 使用示例:
import 'package:image_gallery_saver/image_gallery_saver.dart';
// 保存网络图片
await ImageGallerySaver.saveImage(
Uint8List bytes, // 图片字节数据
quality: 100,
name: "my_image"
);
// 保存本地文件
await ImageGallerySaver.saveFile(filePath);
- 需要权限:
在
android/app/src/main/AndroidManifest.xml添加:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
- 注意:
- Android 10+需要作用域存储权限
- 建议使用
permission_handler请求存储权限 - 保存后会在相册中显示
简单易用,几行代码就能搞定!
更多关于flutter如何在Android上保存图片到相册的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在 Flutter 中,将图片保存到 Android 相册可以使用 image_gallery_saver 插件。以下是详细步骤:
-
添加依赖
在pubspec.yaml文件中添加:dependencies: image_gallery_saver: ^2.1.1运行
flutter pub get安装。 -
配置权限
在android/app/src/main/AndroidManifest.xml中添加存储权限:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> -
请求权限(Android 6.0+)
使用permission_handler插件动态申请权限(需额外配置)。 -
保存图片
使用以下代码保存图片(支持网络图片、本地文件或 Uint8List 数据):import 'package:image_gallery_saver/image_gallery_saver.dart'; // 示例:保存网络图片 void saveImage() async { var response = await Dio().get( "https://example.com/image.jpg", options: Options(responseType: ResponseType.bytes), ); final result = await ImageGallerySaver.saveImage( Uint8List.fromList(response.data), quality: 100, name: "my_image", ); print(result); // 输出保存路径 }
注意事项:
- Android 10+ 需适配分区存储(Scoped Storage),
image_gallery_saver已兼容。 - 如需保存文件路径,可使用
path_provider获取临时目录。
通过以上步骤即可实现图片保存到相册功能。

