Таким образом, вы должны указать свой «значок круга», чтобы сделать снимок.Сначала я бы добавил ссылку на вашу камеру, например,
<Camera style={{ flex: 1 }}
ref={ (ref) => {this.camera = ref} }
type={this.state.type}>
, а затем создал функцию, которая фактически сообщает вашему приложению, чтобы сделать фотографию:
async snapPhoto() {
console.log('Button Pressed');
if (this.camera) {
console.log('Taking photo');
const options = { quality: 1, base64: true, fixOrientation: true,
exif: true};
await this.camera.takePictureAsync(options).then(photo => {
photo.exif.Orientation = 1;
console.log(photo);
});
}
}
Теперь сделайте так, чтобы на вашем значке была кнопка onPress.() чтобы сделать фото.Я сделал что-то вроде этого.
<TouchableOpacity style={styles.captureButton} onPress={this.snapPhoto.bind(this)}>
<Image style={{width: 100, height: 100}} source={require('../assets/capture.png')}
/>
</TouchableOpacity>
Вы также можете создать представление, которое будет отображать изображение предварительного просмотра или что-то подобное.У документации Экспо есть довольно хороший пример того, как начать.Обратите внимание, что Expo создает кэшированную папку с именем «Камера», и именно там изначально находится изображение.