android - 无法从图库中选取图片

标签 android android-studio flutter dart

我正在编写一个识别植物物种的应用程序。我想选择一张图像并在屏幕上显示,但我不能。图片返回null。尽管我从图库中选择照片,但仍然显示“未选择图像”。
我还向Android list 添加了read_external_storage权限。
as you can see.

import 'dart:io';
import 'package:tflite/tflite.dart';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';

class PlantSpeciesRecognition extends StatefulWidget {
  var model;

  PlantSpeciesRecognition(this.model);

  @override
  _PlantSpeciesRecognitionState createState() =>
      _PlantSpeciesRecognitionState();
}

class _PlantSpeciesRecognitionState extends State<PlantSpeciesRecognition> {
  File _image;
  bool _busy = false;
  List _recognitions;


  Future chooseImageGallery() async {
    debugPrint("choose image function");
    var image = await ImagePicker().getImage(source: ImageSource.gallery);
    //var image = await ImagePicker.pickImage(source: ImageSource.gallery);

    if (image == null) {
      debugPrint("choose image if");
      return;
    }
    //await analyzeTFLite();

    setState(() {
      debugPrint("choose image set state");
      _busy = true;
      _image = image as File;
    });
  }
   
  @override
  Widget build(BuildContext context) {
    List<Widget> stackChildren = [];
    Size size = MediaQuery.of(context).size;

    //stackChildren.clear();

    stackChildren.add(Positioned(
      top: 0.0,
      left: 0.0,
      width: size.width,
      child: _image == null ? Text("No Image Selected") : Image.file(_image),
    ));

    return Scaffold(
      appBar: AppBar(
        title: const Text('Plant Species Recognition'),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: chooseImageGallery,
        tooltip: 'Pick Image',
        child: Icon(Icons.image),
      ),
      body: Stack(
        children: stackChildren,
      ),
    );
  }
}

最佳答案

这是正常现象,因为不是返回文件。更正以下行:

setState(() {
      debugPrint("choose image set state");
      _busy = true;
      _image = File(image.path); //change this line.
    });

关于android - 无法从图库中选取图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64785733/

相关文章:

java - 主要 Activity 中的方法不会传递到其他 Activity 中

flutter - 更新相机后无法使用相机资源 : ^0. 10.0 takepicture() 函数不起作用

java - 从日期选择器和时间选择器获取日期和时间

android - 适用于 Android 的 Dropbox API v2 : how to get media files details?

android - 在 Android Studio 中使用适用于 Android 的 Amazon Web Service SDK

java - 用户登录 Android Studio 后如何将应用程序打开到不同的 Activity

dart - 如何在 flutter 中压缩视频?

ios - 沙盒中的 Flutter 自动续订订阅永不过期

android - 从另一个 View 后面动画/翻译 View

android - 选择和取消选择单选按钮