Flutter-Camera相机

2019-04-09  本文已影响0人  秋分落叶

第一步引入架包camera:版本号不用填

import 'package:flutter/material.dart';

import 'package:camera/camera.dart';

List<CameraDescription> cameras;

Future<Null> main() async {

  cameras = await availableCameras();

  runApp(MyApp());

}

class MyApp extends StatelessWidget {

  @override

  Widget build(BuildContext context) {

    return MaterialApp(

      title: 'Material App',

      home: Scaffold(

        appBar: AppBar(

          title: Text('Material App Bar'),

        ),

        body: CameraPage(cameras),

      ),

    );

  }

}

class CameraPage extends StatefulWidget {

  final cameras;

  CameraPage(this.cameras);

  @override

  _CameraPageState createState() => _CameraPageState();

}

class _CameraPageState extends State<CameraPage> {

  CameraController controller;

  @override

  void initState() {

    super.initState();

    controller = CameraController(widget.cameras[0], ResolutionPreset.medium);

    controller.initialize().then((_){

      if (!mounted) {

        return;

      }

      setState(() {

      });

    });

  }

  @override

  void dispose() {

    super.dispose();

    controller.dispose();

  }

  @override

  Widget build(BuildContext context) {

    if (!controller.value.isInitialized) {

      return Container();

    }

    return AspectRatio(

      aspectRatio: controller.value.aspectRatio,

      child: CameraPreview(controller),

    );

  }

}

上一篇 下一篇

猜你喜欢

热点阅读