首页 > 解决方案 > 如何在 Flutter 中设置图像

问题描述

我想为我的颤动屏幕设置一个图像,所以我一直在使用这个dependency叫做getflutter. 我可以通过提供如下链接来设置图像。

class _AddNewsState extends State<AddNews> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Add News"),
        backgroundColor: Colors.black,
      ),
      body: Builder(
        builder: (context) => Container(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.start,
            children: <Widget>[
              SizedBox(
                height: 50.0,
              ),
              Expanded(
              flex: 2,
              child: Image.file(File(widget.imgPath),fit: BoxFit.cover,) //taking the image passed from `camera_screen.dart`, need to set this to `image:` tag under `GFImageOverlay` below
              ),
              Row(
                mainAxisAlignment: MainAxisAlignment.center,
                children: <Widget>[
                  Align(
                    alignment: Alignment.center,
                    child: GFImageOverlay(
                        height: 200,
                        width: 200,
                        shape: BoxShape.rectangle,
                        image: NetworkImage('https://via.placeholder.com/1380')),
                  )
                ],
              ),
            ],
          ),
        ),
      ),
    );
  }
}

我有另一个 UI,它从相机中获取图像并将其传递给AddNews上面显示的这个 UI。

我想要的是将我正在使用相机实时拍摄的这张图像传递给包中​​的类中的这个image:标签。GFImageOverlaygetflutter

我从相机拍摄的图像传递给它AddNews,如下所示:

这是camera_screen.dart我调用AddNews类并传递图像的一部分。

void _onCapturePressed(context) async {
    try {

      final path =
          join((await getTemporaryDirectory()).path, '${DateTime.now()}.png');
      await controller.takePicture(path);

      Navigator.push(
        context,
        MaterialPageRoute(
            builder: (context) => AddNews(
                  imgPath: path,
                )),
      );
    } catch (e) {
      _showCameraException(e);
    }
  }

AddNews我想将此图像分配image:GFImageOverlay.

我怎样才能做到这一点?

标签: flutter

解决方案


由于要显示文件中的图像,因此必须使用FileImage提供程序:

GFImageOverlay(
  height: 200,
  width: 200,
  shape: BoxShape.rectangle,
  image: FileImage(File(widget.imgPath)),
)

推荐阅读