flutter 保存圖片到本地


f'lutter 圖片的保存 分為倆步:

1.開啟存儲圖片權限
開啟權限需要用到permission_handler
pubspec 添加
permission_handler: ^3.0.1
下載包就可以了

 

 
         
添加開啟權限配置
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

flutter代碼中添加權限開啟代碼:
@override
void initState() {
super.initState();
var permission = PermissionHandler().checkPermissionStatus(PermissionGroup.storage);
print("permission status is " + permission.toString());
PermissionHandler().requestPermissions(<PermissionGroup>[
PermissionGroup.storage, // 在這里添加需要的權限
]);
}
到了這一步會彈出請求開啟權限的彈框,打開權限就可以進行圖片保存的操作。
2.進行圖片保存
保存圖片要用到
image_gallery_saver
pubspec 添加
image_gallery_saver : ^1.1.0
安裝完畢 整代碼保存圖片就可以了:
onPressed: _testSaveImg, 在點擊事件中添加保存圖片代碼
_testSaveImg () async {

print('保存圖片88888');
print("_onImageSaveButtonPressed");

  // 這個圖片的地址是本地的文件進行測試 要引入,import 'package:flutter/services.dart' show rootBundle;
  ByteData bytes = await rootBundle.load('assets/images/guide3.png');
    final result = await ImageGallerySaver.save(bytes.buffer.asUint8List()); //這個是核心的保存圖片的插件
    print(result);   //這個返回值 在保存成功后會返回true
if(result){
Fluttertoast.showToast(msg: '保存成功', fontSize: 14,gravity: ToastGravity.CENTER,timeInSecForIos: 1,textColor: Colors.white,);
}else{
Fluttertoast.showToast(msg: '保存失敗', fontSize: 14,gravity: ToastGravity.CENTER,timeInSecForIos: 1,textColor: Colors.white,);
}

}

 

自己整的時候是先保存圖片,發現保存沒有權限,權限處理權限浪費了點時間。  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM