Как использовать виджет Image.file во флаттере - PullRequest
0 голосов
/ 06 августа 2020
'''
I/flutter ( 7954): The following FileSystemException was thrown resolving an image codec:
I/flutter ( 7954): Cannot open file, path = 'image.png' (OS Error: No such file or directory, errno = 2)
I/flutter ( 7954): 
I/flutter ( 7954): When the exception was thrown, this was the stack:
I/flutter ( 7954): #0      _File.open.<anonymous closure> (dart:io/file_impl.dart:366:9)
I/flutter ( 7954): (elided 13 frames from dart:async)
I/flutter ( 7954): ...
I/flutter ( 7954): 
I/flutter ( 7954): Path: image.png
I/flutter ( 7954): ════════════════════════════════════════════════════════════════════════════════════════════════════

введите описание изображения здесь

Я использую image.file для отображения виджета, но это вызывает исключение ниже, как решить эту проблему, и я добавляю свой код как изображение. В чем основное различие между виджетом image.asset и виджетом image.file. Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 06 августа 2020

Image.asset используется для загрузки изображений из папки ваших проектов assets. Поскольку он уже доступен в проекте и довольно простое предисловие к использованию.

Image.asset('assets/image.jpg');

С другой стороны, Image.file используется для загрузки изображений с внутреннего / внешнего хранилища устройств. Таким образом, вам нужно найти изображение с помощью ImagePicker или любой другой библиотеки, чтобы получить path изображения. Используя этот path, создайте объект File и предоставьте его Image.file.

String path = 'your/image/path/here';
File imageFile = File(path);
Widget image = Image.file(imageFile);
0 голосов
/ 06 августа 2020

Вам необходимо добавить правильное расположение файла:

File file = new File('directoryLocation/image.png');

Другой способ загрузки изображений - это добавить их в папку assets в проекте, а затем в pubspec.yaml, вы можете сделать следующее:

flutter:
  assets:
    - assets/my_icon.png
    - assets/background.png

Затем выполните:

Widget build(BuildContext context) {
  return Image(image: AssetImage('assets/my_icon.png'));
}

Проверьте документы:

https://flutter.dev/docs/development/ui/assets-and-images

...