如何为 ImageProvider 提供图像对象 (Flutter)
How do I feed an ImageProvider with an image object(Flutter)
我有这个来自 photo_view 的 PhotoView:^0.10.3。我想将 Image 对象用于 PhotoView,但它需要一个 ImageProvider,我不知道该怎么做。我知道 AssetsImage() 可以被提供,但我的图像不是来自资产,我已经用我想要的图像制作了一个图像对象。
import 'package:photo_view/photo_view.dart';
import 'package:flutter/material.dart';
class PlaceSelectedImage extends StatefulWidget{
final Image _image;
PlaceSelectedImage(this._image);
@override
PlaceSelectedImageState createState() => PlaceSelectedImageState(_image);
}
class PlaceSelectedImageState extends State<PlaceSelectedImage>{
final Image _image;
PlaceSelectedImageState(this._image);
@override
Widget build(BuildContext context) {
// TODO: implement build
return Center(
child: PhotoView(
imageProvider: _image
),
);
}
}
如果您想使用来自服务器的图像,您需要使用 NetworkImage class 而不是使用 AssetImage。
您不能使用 Image,因为它本身是一个不同的小部件,它会消耗 Asset/NetworkImage。
我设法解决了:我使用了 FileImage()
,我没有传递 _image
,而是传递了文件路径。
如果您需要提供从另一个屏幕获取的图像,
尝试使用此代码:
import 'package:photo_view/photo_view.dart';
import 'package:flutter/material.dart';
class PlaceSelectedImage extends StatefulWidget{
final Image _image;
PlaceSelectedImage(this._image);
@override
PlaceSelectedImageState createState() => PlaceSelectedImageState(_image);
}
class PlaceSelectedImageState extends State<PlaceSelectedImage>{
@override
Widget build(BuildContext context) {
// TODO: implement build
return Center(
child: PhotoView(
imageProvider: widget._image
),
);
}
}
我有这个来自 photo_view 的 PhotoView:^0.10.3。我想将 Image 对象用于 PhotoView,但它需要一个 ImageProvider,我不知道该怎么做。我知道 AssetsImage() 可以被提供,但我的图像不是来自资产,我已经用我想要的图像制作了一个图像对象。
import 'package:photo_view/photo_view.dart';
import 'package:flutter/material.dart';
class PlaceSelectedImage extends StatefulWidget{
final Image _image;
PlaceSelectedImage(this._image);
@override
PlaceSelectedImageState createState() => PlaceSelectedImageState(_image);
}
class PlaceSelectedImageState extends State<PlaceSelectedImage>{
final Image _image;
PlaceSelectedImageState(this._image);
@override
Widget build(BuildContext context) {
// TODO: implement build
return Center(
child: PhotoView(
imageProvider: _image
),
);
}
}
如果您想使用来自服务器的图像,您需要使用 NetworkImage class 而不是使用 AssetImage。
您不能使用 Image,因为它本身是一个不同的小部件,它会消耗 Asset/NetworkImage。
我设法解决了:我使用了 FileImage()
,我没有传递 _image
,而是传递了文件路径。
如果您需要提供从另一个屏幕获取的图像,
尝试使用此代码:
import 'package:photo_view/photo_view.dart';
import 'package:flutter/material.dart';
class PlaceSelectedImage extends StatefulWidget{
final Image _image;
PlaceSelectedImage(this._image);
@override
PlaceSelectedImageState createState() => PlaceSelectedImageState(_image);
}
class PlaceSelectedImageState extends State<PlaceSelectedImage>{
@override
Widget build(BuildContext context) {
// TODO: implement build
return Center(
child: PhotoView(
imageProvider: widget._image
),
);
}
}