import 'dart:io'; import 'package:flutter/widgets.dart'; import 'package:image_picker/image_picker.dart'; import 'package:path/path.dart'; import 'package:path_provider/path_provider.dart'; import 'package:shared_preferences/shared_preferences.dart'; class CompassImageProvider extends ChangeNotifier { CompassImageProvider() { loadCompassImage(); } final Future _prefs = SharedPreferences.getInstance(); ImageProvider _rotateImage; ImageProvider get rotateImage => _rotateImage; // 加载罗盘图片 void loadCompassImage() async { final prefs = await _prefs; final appDataDirectory = await getApplicationDocumentsDirectory(); String pathString = prefs.getString('rotate_image'); if (pathString != null) { File file = File(join(appDataDirectory.path, pathString)); var isFileExist = await file.exists(); if (isFileExist) { _rotateImage = FileImage(file); } else { _rotateImage = null; } } else { _rotateImage = null; } notifyListeners(); } void setSelectedRotateImage(XFile res) async { final appDataDirectory = await getApplicationDocumentsDirectory(); print(res.path); String pathString = res.name; if (pathString == null) { return; } // imageCache.clear(); // res.saveTo(join(appDataDirectory.path, res.name)); res.saveTo( join(appDataDirectory.path, 'rotate_image${extension(res.name)}')); final prefs = await _prefs; // final appDataDirectory = await getApplicationDocumentsDirectory(); // File file = File(join(appDataDirectory.path, pathString)); // File file = // File(join(appDataDirectory.path, 'rotate_image${extension(res.name)}')); File file = File(res.path); print(file); var isFileExist = await file.exists(); print(isFileExist); if (isFileExist) { _rotateImage = FileImage(file); } else { _rotateImage = null; } prefs.setString('rotate_image', 'rotate_image${extension(res.name)}'); // prefs.setString('rotate_image', pathString); // imageCache.clearLiveImages(); notifyListeners(); } }