flutter拍照功能实现 使用image_picker库

拍照和获取本地图片:
image_picker:版本:
image_picker: ^0.5+3

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

void main() {
    
    
  runApp(ImagePickerWidget());
}

class ImagePickerWidget extends StatefulWidget {
    
    
  @override
  State<StatefulWidget> createState() {
    
    
    return _ImagePickerState();
  }
}

class _ImagePickerState extends State<ImagePickerWidget> {
    
    
  var _imgPath;

  @override
  Widget build(BuildContext context) {
    
    
    return MaterialApp(
        home: Scaffold(
            appBar: AppBar(
              title: Text("ImagePicker"),
            ),
            body: SingleChildScrollView(
              child: Column(
                children: <Widget>[
                  _ImageView(_imgPath),
                  RaisedButton(
                    onPressed: _takePhoto,
                    child: Text("拍照"),
                  ),
                  RaisedButton(
                    onPressed: _openGallery,
                    child: Text("选择照片"),
                  ),
                ],
              ),
            )));
  }

  /*图片控件*/
  Widget _ImageView(imgPath) {
    
    
    if (imgPath == null) {
    
    
      return Center(
        child: Text("请选择图片或拍照"),
      );
    } else {
    
    
      return Image.file(
        imgPath,
      );
    }
  }

  /*拍照*/
  _takePhoto() async {
    
    
    var image = await ImagePicker.pickImage(source: ImageSource.camera);

    setState(() {
    
    
      _imgPath = image;
    });
  }

  /*相册*/
  _openGallery() async {
    
    
    var image = await ImagePicker.pickImage(source: ImageSource.gallery);
    setState(() {
    
    
      _imgPath = image;
    });
  }
}

猜你喜欢

转载自blog.csdn.net/txaz6/article/details/109007646