flutter - 点按即可对焦 Flutter 相机

标签 flutter dart

一个简单但非常复杂的问题:为 Flutter 相机添加点击对焦功能的最佳方法是什么?
我在整个万维网上搜索了优雅的解决方案,但一无所获。
你有想法吗?

最佳答案

我可能会迟到,但你可以试试 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>[];
      });
    });
  }
}

关于flutter - 点按即可对焦 Flutter 相机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63961332/

相关文章:

android-studio - 如何更改 FlutterLogo 图像

android - 如何将媒体查询数据添加到特定填充?

flutter - 在调用SetState()之后Flutter无法重新构建窗口小部件

database - 如何在 Dart (Flutter) 中获取每个可迭代值的索引号

dart - 如何更改 FloatingActionButton extended 中的图标位置

flutter - 如何在Flutter中添加垂直分隔线?

java - SQLite查询产生最后一个但一行值而不是最后插入的行值

json - JSON.parse Map希望String获取整数

flutter getx Rxn值,如何更新null值?

firebase - 为什么我从Firebase提取的数据来自null?