import React, { Component } from 'react'; import { AppRegistry, StyleSheet, Text, View, ListView, TouchableOpacity, Image, AlertIOS } from 'react-native'; import { CameraKitGallery, CameraKitCamera, } from 'react-native-camera-kit'; const FLASH_MODE_AUTO = "auto"; const FLASH_MODE_ON = "on"; const FLASH_MODE_OFF = "off"; const RATIOS = ['3:4', '6:9', '1:1', '2:1']; export default class CameraScreen extends Component { constructor(props) { super(props); const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}); this.state = { albums:{}, albumsDS: ds, shouldOpenCamera: false, shouldShowListView: false, image:{imageURI:""}, flashMode:FLASH_MODE_AUTO, ratiosArrayPosition: 0 } } render() { return ( this._renderCameraView() ); } _renderCameraView() { return ( { this.camera = cam; }} style={{flex: 1, backgroundColor:'white'}} cameraOptions= {{ flashMode: 'auto', // on/off/auto(default) focusMode: 'on', // off/on(default) zoomMode: 'on', // off/on(default) ratioOverlay:RATIOS[this.state.ratiosArrayPosition], ratioOverlayColor: '#00000077' }} /> TAKE IT! switch camera flash auto flash on flash off this.ratioPressed() }> {RATIOS[this.state.ratiosArrayPosition]} ) } ratioPressed() { this.setState({ratiosArrayPosition: (this.state.ratiosArrayPosition+1)%(RATIOS.length)}) } async onSwitchCameraPressed() { const success = await this.camera.changeCamera(); } async onCheckAuthoPressed() { const success = await CameraKitCamera.checkDeviceAuthorizarionStatus(); if (success){ AlertIOS.alert('You rock!') } else { AlertIOS.alert('You fucked!') } } async onSetFlash(flashMode) { const success = await this.camera.setFlashMode(flashMode); } async onTakeIt() { const imageURI = await this.camera.capture(true); let newImage = {imageURI: imageURI.uri}; this.setState({...this.state, image:newImage}); } }