如何为 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 提供图像对象(颤振)的主要内容,如果未能解决你的问题,请参考以下文章

如何为 MKPolygonRenderer 提供图像?

ImageProvider 错误 - Flutter

如何为iphone中的图像提供动画看起来像花

如何为不同的电子邮件提供商在图像上放置动态文本? (响应式电子邮件)

如何为instagram中的图像赋予效果[关闭]

iOS - 如何为头像创建分层图像