#flutter #flutter-plugin #flutter-image
#flutter #flutter-плагин #flutter-изображение
Вопрос:
multi_image_picker: 2.4.11
Плагин возвращает a List<Asset>
, каждый из которых Asset
имеет imageData
свойство, которое является ByteData
.
Как я могу показать их во Flutter?
Ответ №1:
Вы можете использовать Image.memory
конструктор.
List<Asset> assets = ...; // use multi_image_picker to get the assets
return ListView.builder(
padding: EdgeInsets.all(8.0),
itemExtent: assets.length,
itemBuilder: (BuildContext context, int index) {
return Image.memory(assets[index].imageData.buffer.asUint8List());
},
);
Комментарии:
1. как это сделать для версии 4.6.0 multi_image_picker?
2. AFAICT 4.6.0 по-прежнему возвращает
List<Asset>
frompickImages
. Это должно работать точно так же.3. если я ввожу assets [index].ImageData.buffer.asUint8List()), это выдает ошибку извините, я новичок в программировании dart, не могли бы вы, пожалуйста, рассказать мне?
4. Просмотр страницы.builder (количество элементов: widget.images. длина, itemBuilder: (BuildContext context, int index) { var asset = widget.images[index].ImageData.buffer.asUint8List(); возвращает контейнер( цвет: Theme.of(context).primaryColor, дочерний элемент: Center(дочерний элемент: Image.memory(asset), ), ); }, ),
5. вот как я это написал.
Ответ №2:
Вот функция, которая преобразует ресурс -> Изображение
Future<Image> assetThumbToImage(Asset asset) async {
final ByteData byteData = await asset.getByteData();
final Image image = Image.memory(byteData.buffer.asUint8List());
return image;
}