【问题标题】:Tap to focus for Flutter camera点按即可对焦 Flutter 相机
【发布时间】:2021-01-05 17:20:01
【问题描述】:

一个简单但非常复杂的问题:为 Flutter 相机添加点击对焦功能的最佳方式是什么?

我在整个万维网上搜索了优雅的解决方案,但一无所获。

你有什么想法吗?

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    我可能会迟到,但你可以试试adv_camera package

    这是一个简单的例子:

    import 'package:adv_camera/adv_camera.dart';
    import 'package:flutter/material.dart';
    
    class CameraApp extends StatefulWidget {
      final String id;
    
      const CameraApp({Key? key, required this.id}) : super(key: key);
    
      @override
      _CameraAppState createState() => _CameraAppState();
    }
    
    class _CameraAppState extends State<CameraApp> {
      List<String> pictureSizes = <String>[];
      String? imagePath;
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: const Text('AdvCamera Example'),
          ),
          body: SafeArea(
            child: AdvCamera(
              initialCameraType: CameraType.rear,
              onCameraCreated: _onCameraCreated,
              onImageCaptured: (String path) {
                if (this.mounted)
                  setState(() {
                    imagePath = path;
                  });
              },
              cameraPreviewRatio: CameraPreviewRatio.r16_9,
              focusRectColor: Colors.purple,
              focusRectSize: 200,
            ),
          ),
          floatingActionButton: FloatingActionButton(
            heroTag: "capture",
            child: Icon(Icons.camera),
            onPressed: () {
              cameraController!.captureImage();
            },
          ),
        );
      }
    
      AdvCameraController? cameraController;
    
      _onCameraCreated(AdvCameraController controller) {
        this.cameraController = controller;
    
        this.cameraController!.getPictureSizes().then((pictureSizes) {
          setState(() {
            this.pictureSizes = pictureSizes ?? <String>[];
          });
        });
      }
    }
    

    【讨论】:

    • 这个插件很好用,但你也可以试试 camerawesome 插件,它也适用于即时对焦。
    • 官方相机插件也支持对焦pub.dev/packages/camera。虽然文档中还没有,但可以在示例中找到它
    • 这有助于自动对焦吗?
    • @AlanBosco 这个话题是关于自动对焦的吗?顺便说一句,自动对焦开箱即用
    • 对不起,我刚刚问了。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-25
    • 1970-01-01
    相关资源
    最近更新 更多