如何为 ImageProvider 提供图像对象(颤振)
Posted
技术标签:
【中文标题】如何为 ImageProvider 提供图像对象(颤振)【英文标题】:How do I feed an ImageProvider with an image object(Flutter) 【发布时间】:2021-03-28 02:01:13 【问题描述】:我有这个来自 photo_view 的 PhotoView:^0.10.3。我想将 Image 对象用于 PhotoView 但它需要一个 ImageProvider,我不知道该怎么做。我知道 AssetsImage() 可以提供,但我的图像不是来自资产,我已经用我想要的图像制作了一个 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>
final Image _image;
PlaceSelectedImageState(this._image);
@override
Widget build(BuildContext context)
// TODO: implement build
return Center(
child: PhotoView(
imageProvider: _image
),
);
【问题讨论】:
【参考方案1】:我设法解决了这个问题:我使用了FileImage()
,而不是传递_image
,而是传递了文件路径。
【讨论】:
这并没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review【参考方案2】:如果您需要提供从另一个屏幕获取的图像,
尝试使用此代码:
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
),
);
【讨论】:
这也可以工作:D,但我已经设法使用 FileImage() 来做到这一点。谢谢大佬不胜感激!【参考方案3】:如果你想使用来自服务器的图像,你需要使用 NetworkImage 类而不是使用 AssetImage。
你不能使用 Image,因为它本身是一个不同的小部件,它消耗 Asset/NetworkImage。
【讨论】:
以上是关于如何为 ImageProvider 提供图像对象(颤振)的主要内容,如果未能解决你的问题,请参考以下文章