如何获得相机预览的高度?

时间:2018-12-12 15:38:29

标签: reactjs react-native react-native-camera

使用react-native-camera(RNCamera),当预览为窗口的整个宽度且可见整个预览时,我正在努力将相机预览的高度设置为正确。此问题假定设备始终处于纵向模式。

我的代码如下:

import React, { Component } from "react";
import { Dimensions, Button, View } from "react-native";
import { RNCamera } from "react-native-camera";

export default class CameraScreen extends Component {
  static navigationOptions = {
    header: null
  };
  render() {
    return (
      <View>
        <RNCamera
          ref={ref => {
            this.camera = ref;
          }}
          style={{
            width: Dimensions.get("window").width,
            height: 400 // <-- need to know what this value actually is
          }}
          type={RNCamera.Constants.Type.back}
        />
        <Button
          title="This button should appear directly below the camera preview"
          onPress={() => false}
        />
      </View>
    );
  }
});

我确定它与getSupportedRatiosAsync()有关,但是这会返回多个比率。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

首先,您必须选择要使用的比例。

4:3、1:1、16:9等

您的身高可以通过您的比例和宽度来计算。

  

比率=高度:宽度(对于本机相机)

因此,让我们尝试计算4:3比例和480px宽度的高度。

var height = 4*width/3; //for portrait mode 3:4

如果要充分发挥肖像的表现,则应使用“ flex:1”。

您可以在react-native-camera documentation #ratio

中获取更多详细信息