如果 Flutter 中的 Image Picker 未选择,则显示默认图像

Posted

技术标签:

【中文标题】如果 Flutter 中的 Image Picker 未选择,则显示默认图像【英文标题】:Display Default Image if wasn't picked by Image Picker in Flutter 【发布时间】:2021-01-26 12:25:49 【问题描述】:

我有一个图像选择器功能,它从图库中选择图像,然后将其分配给 _image 变量,它是字符串。它将其转换为 base64,因为这是必要的。我想知道如果没有选择图像(选择的图像为空),我将如何从资产中获取默认图像作为 _image。这是我尝试过的代码和注释掉的东西,它在代码中的 else 下:

  Future _getImage() async 
PickedFile pickedFile = await picker.getImage(source: ImageSource.gallery);
setState(() 
  if (pickedFile != null) 
    final file = File(pickedFile.path);
    _image = Utility.base64String(file.readAsBytesSync());
   else 
    //if image wasn't picked, get the default one from assets
    print('No image selected.');
    // final file = File(AssetImage('assets/defaultfood.jpg').toString());
    // _image = Utility.base64String(file.readAsBytesSync());
    //final file = File('assets/defaultfood.jpg');
    //_image = Utility.base64String(file.readAsBytesSync());
    
  
);

【问题讨论】:

【参考方案1】:

像这种三元条件一样添加图像占位符

child: pickedFile == null ? Image.asset("assets/images/man_user.png",height: 100, width: 100): Image.file(pickedFile, height: 100, width: 100),

【讨论】:

你说得对,其实是我自己想出来的,我有几分钟的呆滞时刻,就是想不通。还是谢谢你!

以上是关于如果 Flutter 中的 Image Picker 未选择,则显示默认图像的主要内容,如果未能解决你的问题,请参考以下文章

如果 Flutter 中的 Image Picker 未选择,则显示默认图像

Flutter Image图片加载流程

Flutter 中的“Image”和“ImageProvider”有啥区别?

Flutter基础组件06Image

Flutter基础组件06Image

检查图像是不是已加载到 Flutter 中的 Image.network 小部件中