首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置3:4宽高比颤动相机预览

如何设置3:4宽高比颤动相机预览
EN

Stack Overflow用户
提问于 2019-12-06 13:51:05
回答 2查看 4.8K关注 0票数 2

我正在开发Flutter应用程序。我需要相机的功能,并决定使用Camera Plugin为此。我设置了3:4的纵横比,但是图像被扭曲了,而且比它应该的要小。我认为规模有问题。设置相机宽高比(即3:4)的正确方法是什么?

代码语言:javascript
复制
final size = MediaQuery.of(context).size;
final deviceRatio = size.width / size.height;
final aspectRatio=3/4;

Transform.scale(
        scale: controller.value.aspectRatio / deviceRatio,
        child: Center(
          child: AspectRatio(
              aspectRatio: aspectRatio,
              child: CameraPreview(controller),
          )
        ),
      )
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-10 12:10:43

我这样解决了我的问题

代码语言:javascript
复制
final size = MediaQuery.of(context).size.width;

Transform.scale(
                scale: 1.0,
                child: AspectRatio(
                  aspectRatio: 3.0 / 4.0,
                  child: OverflowBox(
                    alignment: Alignment.center,
                    child: FittedBox(
                      fit: BoxFit.fitWidth,
                      child: Container(
                        width: size,
                        height: size / controller.value.aspectRatio,
                        child: Stack(
                          children: <Widget>[
                            CameraPreview(controller),
                          ],
                        ),
                      ),
                    ),
                  ),
                ),
              )
票数 7
EN

Stack Overflow用户

发布于 2020-09-27 15:06:17

代码语言:javascript
复制
RotatedBox(
              quarterTurns:
                  MediaQuery.of(context).orientation == Orientation.landscape
                      ? 3
                      : 0,
              child: Transform.scale(
                scale: 1.0,
                child: AspectRatio(
                  aspectRatio: 3.0 / 4.0,
                  child: OverflowBox(
                    alignment: Alignment.center,
                    child: FittedBox(
                      fit: BoxFit.fitWidth,
                      child: Container(
                        width: size,
                        height: size / cameraController.value.aspectRatio,
                        child: Stack(
                          children: <Widget>[
                            CameraPreview(cameraController),
                          ],
                        ),
                      ),
                    ),
                  ),
                ),
              ),
            )
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59207590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档