flutter - Flutter 中的变焦相机
问题描述
我正在使用此库来显示相机(https://pub.dev/packages/camera),但是,我想在相机启动之前为其设置预定义的缩放值,但我无法确定我可以使用这个库在哪里设置它。
有谁知道该怎么做?
这是我到目前为止得到的代码
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:camera/camera.dart';
class CameraPage extends StatefulWidget {
@override
_CameraPageState createState() => _CameraPageState();
}
class _CameraPageState extends State<CameraPage> {
List<CameraDescription> cameras;
CameraController controller;
@override
void initState() {
// TODO: implement initState
super.initState();
buscarCameras();
}
Future<void> buscarCameras() async {
cameras = await availableCameras();
controller = CameraController(cameras[0], ResolutionPreset.medium);
controller.initialize().then((_) {
if (!mounted) {
return;
}
setState(() {});
});
}
@override
Widget build(BuildContext context) {
if(controller == null || controller.value == null)
return Center(
child: CircularProgressIndicator(),
);
if (!controller.value.isInitialized) {
return Container();
}
return AspectRatio(
aspectRatio: controller.value.aspectRatio,
child: CameraPreview(controller));
}
}
解决方案
从Camera 版本 0.6.2开始,Flutter 添加了缩放支持。您可以cameraController.setZoomLevel(4.0);
在代码中使用来调整缩放级别。
还有其他有用的功能,例如cameraControl.getMaxZoomLevel();
查找缩放级别的限制。
在撰写本文时,没有任何关于此功能的文档,因为它是最新的,但您可以查看相机控制器的代码以查看可用的方法。
推荐阅读
- javascript - 成功登录后在 SAME 窗口中打开 target.html 页面
- r - ARIMA 函数不输出 AICC、BIC、x 或拟合值。我没有正确格式化时间序列吗?
- java - java.lang.IllegalStateException: 配置错误: 为测试类找到多个@BootstrapWith 声明
- postgresql - 续集关系“喜欢”不存在
- c - 如何为进程间通信创建一个全局窗口?
- database - 如何解决 RSA 解密中的错误“'System.Security.Cryptography.CryptographicException' Bad Data”
- ubuntu - 如何从 ubuntu 18.04 中删除和清除 lam mpi
- batch-file - 你如何制作一个打开一个exe但也“点击”该exe中的运行按钮的批处理文件?
- sql - 使用表达式更改框颜色
- c++ - 模板结构的多个声明,用于获取枚举,描述模板类型