CameraScreen.js 1.53 KB
Newer Older
Phuengton Chummuel's avatar
Phuengton Chummuel committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
import React, { Component } from 'react';
import { BackHandler, ToastAndroid } from 'react-native';
import {
  Dimensions,
  StyleSheet,
  Text,
  View
} from 'react-native';

import { Container, Header, Content, Icon, Button } from 'native-base';
import Camera from 'react-native-camera';

class AppCamera extends Component {

  render() {
    return (
      <Container style={styles.container}>
        <Camera
          ref={(cam) => {
            this.camera = cam;
          }}
          style={styles.preview}
          aspect={Camera.constants.Aspect.fill}
          captureTarget={Camera.constants.CaptureTarget.temp}
          playSoundOnCapture={false}
          defaultTouchToFocus>

          <Button onPress={this.takePicture.bind(this)} style={styles.capture}>
            <Text>[CAPTURE]</Text>
          </Button>
        </Camera>
      </Container>
    );
  }

  takePicture() {
    const options = {};
    //options.location = ...
    this.camera.capture({ metadata: options })
      .then((data) => {
        // ToastAndroid.show(data.path, ToastAndroid.SHORT);
        this.props.navigation.navigate("PreviewPhoto", { photo: data })
      })
      .catch(err => console.error(err));
  }


}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    flexDirection: 'row',
  },
  preview: {
    flex: 1,
    justifyContent: 'flex-end',
  },
  capture: {
    flex: 0,
    backgroundColor: '#fff',
    borderRadius: 5,
    padding: 10,
    margin: 40,
    alignItems: 'center',
    alignSelf: 'center'
  }
});

export default AppCamera;