Flutter:为什么image_picker无法打开我画廊中的照片?

时间:2019-03-08 12:38:56

标签: flutter uiimagepickercontroller gallery

我是Flutter的新手,无法获取image_picker来打开图库中的图片。

它会打开Gallery,但是当我点击图片时,只需关闭图库

我的代码是这样的。我想念的是什么?

File _imagenTemporal;      


var imagen; 

Future getImagen(String opcion) async {

if (opcion == "camara") {

    imagen = await ImagePicker.pickImage(source: ImageSource.camera);

} else if (opcion == "galeria") {

    imagen = await ImagePicker.pickImage(source: ImageSource.gallery);

}


    setState(() {
      _imagenTemporal = imagen;
    }
  );
}

2 个答案:

答案 0 :(得分:0)

ImagePicker只是一个FileChooser函数,当用户从图库中选择Future<File>或拍照时,它返回一个File小部件。您应该使用返回的文件构造一个Image.file小部件:

Container(
   width: MediaQuery.of(context).size.width,
   height: MediaQuery.of(context).size.height,
   child: showSelectedImage();
),

Future<Image> showSelectedImage() async {

   _imagenTemporal = await ImagePicker.pickImage(source: ImageSource.gallery);

   return Image.file(_imageTemporal);

}  

答案 1 :(得分:0)

我尝试了您的答案,但MediaQuery出现错误,因此我尝试了此代码,但它也没有显示图像(我也没有收到任何错误)。

我不知道我在做什么错..有一段视频显示了这段代码,它可以工作...但是对我来说不行。

感谢您的帮助。

_MyAppState类扩展了状态{

文件_imagen;

未来getImagen()异步{

var imagen = await ImagePicker.pickImage(source: ImageSource.gallery);


setState(() {
  _imagen = imagen;
});

}

@override

小部件构建(BuildContext上下文){

return MaterialApp(

  home: Scaffold(
    appBar: AppBar(
      title: Text('picker'),
    ),
    body: Container(
      child: Center(
        child: _imagen == null
            ? new Text('no hay imagen')
            : new Image.file(_imagen),
      ),
    ),
    floatingActionButton: new FloatingActionButton(
      onPressed: getImagen,
      child: Icon(Icons.camera),
    ),
  ),


);

} }