flutter - 如何以半屏宽高比或 const 高度显示相机不起作用
问题描述
我想以半屏显示相机以捕捉照片,但我尝试给出高度和纵横比,但它们都没有在这里工作是我尝试过的代码。相机仍在全屏打开我正在使用这个相机库
Widget _camera() {
return Container(
height: MediaQuery.of(context).size.height / 2, // This is the height not working
child: Stack(
alignment: Alignment.topCenter,
children: [
Container(
child: AspectRatio(
aspectRatio: 16 / 9, //this is also not working
child: CameraPreview(_cameraController),
),
),
// This is to draw a rectangle on a camera
Container(
margin: const EdgeInsets.only(top: 16),
width: MediaQuery.of(context).size.width - 16,
height: MediaQuery.of(context).size.height / 2.8,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(16),
border: Border.all(color: KpColors.whiteColor),
),
),
],
),
);
}
解决方案
您可以使用比例更改比例,这篇文章:
Map<String, double> ratios = {
'1:1': 1 / 1,
'9:16': 9 / 16,
'3:4': 3 / 4,
'9:21': 9 / 21,
'full': MediaQuery.of(context).size.aspectRatio,
};
final size = MediaQuery.of(context).size;
print('screen ratio: ${size.aspectRatio}, default: $_defaultRatio');
return Transform.scale(
scale: 1.0,
child: AspectRatio(
aspectRatio: _defaultRatio,
child: OverflowBox(
alignment: Alignment.center,
child: FittedBox(
fit: size.aspectRatio >= _defaultRatio
? BoxFit.fitHeight
: BoxFit.fitWidth,
child: Container(
width: size.aspectRatio >= _defaultRatio
? size.height
: size.width,
height: size.aspectRatio >= _defaultRatio
? size.height / controller.value.aspectRatio
: size.width / controller.value.aspectRatio,
child: Stack(
children: <Widget>[
CameraPreview(controller),
],
),
),
),
),
),
);
推荐阅读
- r - Shiny 应用程序无法访问 RStudio Connect Server 上的 SQLite db:“数据库已锁定”
- elasticsearch - 对象嵌套范围聚合的弹性搜索数组
- python - Python 多处理队列 NotImplementedError macOS
- amazon-s3 - 调用 CopyObject 操作时发生错误 (AccessDenied):访问被拒绝
- java - Spring boot JAR 作为 Windows 服务和外部 application.yml
- django - 我无法在 /events/ 错误处解决 NoReverseMatch
- apache-crunch - 将 apache crunch Pcollection 写入多个输出文件
- mysql - MySql中只有输入标记时如何解析单词?
- javascript - QlikSense Field selectValues API - 当字段名称是混搭应用程序中的日期数据类型时不起作用
- json - React Native - NSNumber 类型的 JSON 值“1311”无法转换为 NSDictionary