Заставка галереи изображений Flutter - как получить доступ к пути
Я использую плагин Image Gallery Saver для сохранения изображений. Метод
await ImageGallerySaver.saveImage(pngBytes)
возвращает объект
{filePath: file:///storage/emulated/0/wallpapers/1608205629471.jpg, errorMessage: null, isSuccess: true}
Я хочу получить путь к только что сохраненному файлу (
/storage/emulated/0/wallpapers/1608205629471.jpg
).
Есть ли способ этого добиться?
3 ответа
Это объект Map . Доступ к filePath
String
вот так:
var response = await ImageGallerySaver.saveImage(pngBytes);
// value = json['key']
var path = response['filePath']; // 'file:///storage/emulated/0/wallpapers/1608205629471.jpg'
вы можете получить доступ к ключу с карты, подобной этой
final imagePath = result['filePath'].toString();
затем, если вам нужно удалить путь к местоположению
file://
с регулярным выражением
final imagePath = result['filePath'].toString().replaceAll(RegExp('file://'), '');
прочтите документацию для получения дополнительной информации
Сначала вам нужно указать идентификатор изображения в базе данных, которую вы хотите получить.
Затем передайте идентификатор с помощью этого метода, я даю фрагмент, который я использовал:
import 'package:path/path.dart' as p;
Directory _appDocsDir;
class ImageCashUtil {
ImageCashUtil() {
init();
}
init() async {
WidgetsFlutterBinding.ensureInitialized();
_appDocsDir = await getApplicationDocumentsDirectory();
return _appDocsDir;
}
File fileFromDocsDir(String filename) {
String pathName = p.join(_appDocsDir.path, filename);
return File(pathName);
}
}