picked是PickedFile的类型,而不是File。所以你必须这样转换:
我想拍一张照片,把它设置为轮廓。但我得到了这个错误:
A value of type 'PickedFile' can't be assigned to a variable of type 'File'.
这就是其中涉及的方法。
_loadPicker(ImageSource source)async{
File picked = await ImagePicker.platform.pickImage(source: source);
if(picked!=null){
setState(() {
_pickedImage =picked ;
});
}
Navigator.pop(context);
}
CircleAvatar(
radius: 70,
child:_pickedImage ==null ?Text("Picture"):null,
backgroundImage: _pickedImage!=null?FileImage(_pickedImage):null,
),
File _pickedImage;
希望aynone能够帮助并知道如何解决这个问题。
void _showPickOptionsDialog(BuildContext context) {
showDialog(context: context, builder: (context)=>AlertDialog(
content: Column(
mainAxisSize:MainAxisSize.min ,
children: <Widget>
[ListTile(title:Text
("Pick from Gallery"),
onTap:(){
_loadPicker(ImageSource.gallery);
},
),
ListTile(title: Text("Take a picture"),
onTap: (){
_loadPicker(ImageSource.camera);
}
,)
],
),
),);
}
File _pickedImage = File(picked.path)
所以你的代码应该是:
_loadPicker(ImageSource source)async{
PickedFile picked = await ImagePicker.platform.pickImage(source: ImageSource.camera);
if(picked!=null){
setState(() {
_pickedImage = File(picked.path) ;
});
}
Navigator.pop(context);
}