Logicky Blog

Logickyの開発ブログです

Flutterでカメラ使ってみる(Android)

色んなプラグインが詰まってるやつを見つけました。先程使っていたgoogle mapのも入っている。

github.com

カメラのプラグインはこれです。

plugins/packages/camera at master · flutter/plugins · GitHub

つくったもの

github.com

f:id:edo1z:20190827155243p:plain

事前準備

android/app/build.gradleminSdkVersion21 にする必要があります。

カメラのプレビュー

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:camera/camera.dart';

List<CameraDescription> cameras;

class CameraScreen extends StatefulWidget {
  CameraScreen() {
    getAvaliableCameras();
  }

  Future<void> getAvaliableCameras() async {
    if (cameras == null) {
      cameras = await availableCameras();
    }
  }

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

class _CameraScreenState extends State<CameraScreen> {
  CameraController controller;

  @override
  void initState() {
    super.initState();
    controller = CameraController(cameras[0], ResolutionPreset.medium);
    controller.initialize().then((_) {
      if (!mounted) {
        return;
      }
      setState(() {});
    });
  }

  @override
  void dispose() {
    controller?.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    if (!controller.value.isInitialized) {
      return Container();
    }
    return AspectRatio(
        aspectRatio:
        controller.value.aspectRatio,
        child: CameraPreview(controller));
  }
}

これだと撮影とかできないです。プレビューが表示されるだけ。 下記の記事は、撮影して保存したりする部分も記事にしてくれているので、参考になりそうです。

qiita.com