Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Dimensions.get(“window”包括什么?我应该如何正确测量屏幕比率?_Android_Reactjs_React Native_Camera_Styles - Fatal编程技术网

Android Dimensions.get(“window”包括什么?我应该如何正确测量屏幕比率?

Android Dimensions.get(“window”包括什么?我应该如何正确测量屏幕比率?,android,reactjs,react-native,camera,styles,Android,Reactjs,React Native,Camera,Styles,我试图测量屏幕比例,以便正确设置相机预览。根据这一点,我需要首先测量我的屏幕比例,然后通过迭代const ratios=wait camera.getSupportedRatiosAsync()找到最接近这个比例的值以下是我测量屏幕比例的方法: const { height, width } = Dimensions.get('window'); const screenRatio = height / width; 我的第一个也是最重要的问题是:Dimensions.get('window'

我试图测量屏幕比例,以便正确设置相机预览。根据这一点,我需要首先测量我的屏幕比例,然后通过迭代
const ratios=wait camera.getSupportedRatiosAsync()找到最接近这个比例的值以下是我测量屏幕比例的方法:

const { height, width } = Dimensions.get('window');
const screenRatio = height / width;
我的第一个也是最重要的问题是:
Dimensions.get('window')。height
是否包含页眉堆栈高度?如果是,我是否需要以不同的方式计算屏幕比率,即:

const { height, width } = Dimensions.get('window');
import { useHeaderHeight } from '@react-navigation/stack';
const headerHeight = useHeaderHeight();
const screenRatio = (height- headerHeight)/ width;
根据这一点,它表明不,它不包括状态栏的高度(对于Android)。因此,理论上,我不应该计算
人头高度,我应该
维度中减去它。获取('window')。高度
,我的屏幕比率应该是
const screenRatio=高度/宽度

但是,在我计算屏幕比例和最接近的摄像头支持比例(如建议)后,我会按以下方式显示我的expo摄像头:

<View
    style={{
      height: width * aspectRatio,
      borderColor: "red",
      borderWidth: 3,
    }}
  >
    <Camera
      style={{
        flex: 1,
      }}
      type={cameraType}
      ratio={ratio}
    >
    </Camera>
  </View>

图像看起来很好,没有失真或其他什么但是视图边框未正确显示。也就是说,我看不到视图的底部边界线。当我编辑视图样式时

<View
    style={{
      height: width * aspectRatio - headerHeight, // I am now substracting headerHeight
      borderColor: "red",
      borderWidth: 3,
    }}
  >

我现在可以很好地看到底部边界线

那么我错过了什么?如果
Dimensions.get('window')。height
不包括它,为什么我需要减去
headerHeight
,以便将相机完美地安装到我的屏幕中?再一次,我在Android上测试