代码之家  ›  专栏  ›  技术社区  ›  Pete Alvin

flatter中的“Image”和“ImageProvider”有什么区别?

  •  0
  • Pete Alvin  · 技术社区  · 5 年前

    child: new CircleAvatar(
      backgroundImage: NetworkImage("https..."),        // works
      backgroundImage: Image.asset('images/image.png'), // error
    ),
    

    错误:参数类型“Image”无法分配给参数类型“ImageProvider”。

    0 回复  |  直到 5 年前
        1
  •  3
  •   Ricardo Markiewicz    5 年前

    图像是显示图像的小部件。

    相反,ImageProvider允许您在不确切知道最终资产在哪里的情况下识别图像。当有人想要读取图像时,资产的位置将稍后解析。

        2
  •  9
  •   Suragch Shmidt    4 年前

    图像与图像提供程序

    图像提供者不一定在那里有图像,但它知道如何获取它。

    获取图像

    如果你需要 Image 小部件,然后使用以下其中一个:

    • Image.asset()
    • Image.network()
    • Image.file()
    • Image.memory()

    获取ImageProvider

    如果你需要 ImageProvider ,然后使用其中一个:

    • AssetImage()
    • NetworkImage()
    • FileImage()
    • MemoryImage()

    将ImageProvider转换为图像

    如果你有 图像提供者 你想要一个 图像 小部件,然后执行以下操作:

    Image(
      image: myImageProvider,
    )
    

    如果你有 图像 图像提供者

    myImageWidget.image