【发布时间】:2021-01-13 07:43:36
【问题描述】:
我的应用程序中有一个功能可以帮助用户从图库中选择图片或使用相机拍照。
_getImage(ImageSource source) async {
// ignore: deprecated_member_use
File selectedImage = await ImagePicker.pickImage(
source: source,
imageQuality: 50,
maxWidth: 400.0,
).whenComplete(() {
setState(() {});
});
if (_imageFile == null) return;
setState(() {
_imageFile = selectedImage;
});
}
我正在使用这个image_picker dependency,并按照我在其中找到的示例以及其他人在线完成的可能更新示例进行操作。根据this stackoverflow question 的建议,建议我在其中添加 whenComplete,我这样做了。
当我从我的图库中选择一张图片时,它不会更新我屏幕中的图片视图小部件。相机选项也不起作用。我可能会错过什么?
这是显示图像的图像小部件:
return Stack(
alignment: AlignmentDirectional.bottomCenter,
children: <Widget>[
Image.file(
_imageFile,
fit: BoxFit.cover,
height: 250,
),
Container(
width: 250.0,
height: 100.0,
color: Colors.black54,
child: Column(
children: <Widget>[
Text(
'Change Image',
style: TextStyle(
color: Colors.white,
fontSize: 22.0,
fontWeight: FontWeight.w400,
),
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
//camera button
IconButton(
icon: Icon(FontAwesomeIcons.camera),
onPressed: () => _getImage(ImageSource.camera),
color: kThemeStyleButtonFillColour,
),
SizedBox(width: 20.0),
IconButton(
icon: Icon(FontAwesomeIcons.fileImport),
onPressed: () => _getImage(ImageSource.gallery),
color: kThemeStyleButtonFillColour,
),
],
),
],
),
),
SizedBox(height: 32.0),
],
);
【问题讨论】:
-
首先停止使用pickImage,因为它已被弃用。使用
final pickedFile = ImagePicker().getImage(source: ImageSource.camera);这将返回一个pickedFile并且可以使用imageFile = File(pickedFile.Path)转换为文件 -
请分享包含
Image widget和_imageFile变量声明的代码sn-p。 -
getImage 对我不起作用,因为它希望我将其转换为文件。只有 pickImage 会,即使它说它已被弃用,所以我禁止警告。这是 getImage() 给出的错误:“PickedFile”类型的值不能分配给“文件”类型的变量。
-
我已经编辑了我的问题以添加显示它的图像小部件。
-
发现问题,查看我的回答,希望它能解决您的问题。 ??????
标签: flutter flutter-layout flutter-dependencies imagepicker