前言
本文主要介绍使用image_gallery_saver保存图片(截图、网络图片、gif和视频)到本地相册,目前已经适配了android和iOS端。
前提
flutter版本:2.8.0
dart版本:2.12.0
image_gallery_saver 跳转
permission_handler 跳转
一、使用步骤
1.使用的插件
# 保存图片到本地
image_gallery_saver: ^1.7.1
# 权限管理
permission_handler: ^9.2.0
# 文件权限
path_provider: ^2.0.8
# 网络请求
dio: ^4.0.6
# 提示框
flutter_easyloading: ^3.0.5
2.配置权限
- android 的 AndroidManifest.xml 添加 开启读写storage权限
<!-- 写权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- 读权限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
- ios 的 Info.plist 添加
<key>NSPhotoLibraryAddUsageDescription</key>
<string>Please allow the APP to save photos to the album</string>
此处省略了关于permission_handler的相关配置,如何想要了解permission_handler的相关配置,请前往我的另外一篇文章【flutter】使用permission_handler配置android和 iOS的权限
二、代码示例
import 'dart:async';
import 'dart:io';
import 'dart:typed_data';
import 'package:dio/dio.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:image_gallery_saver/image_gallery_saver.dart';
import 'package:path_provider/path_provider.dart';
import 'package:permission_handler/permission_handler.dart';
import 'dart:ui' as ui;
class HomePage extends StatefulWidget {
const HomePage({
Key? key}) : super(key: key);
@override
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
final GlobalKey _globalKey = GlobalKey();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('保存图片到本地'),
),
body: L