Как я могу получить высоту предварительного просмотра камеры?

С помощью response -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 ответ

Решение

Сначала вы должны выбрать, какое соотношение вы хотите использовать.

4:3, 1:1, 16: 9 и т. Д.

Ваш рост может быть рассчитан с вашим соотношением и шириной.

соотношение = высота: ширина (для реагировать-нативная камера)

Итак, давайте попробуем вычислить высоту для соотношения 4:3 и ширины 480 пикселей.

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

Если вы хотите добиться полной производительности для портрета, используйте "flex:1".

Вы можете получить более подробную информацию в документации о реагирующих камерах #ratio

Другие вопросы по тегам