在反应本机的图像视图中从相机获取最近点击的图像
Get recently clicked image from camera on image view in react-native
我正在我的 React Native 应用程序中实现相机。单击后,我想在同一屏幕上的小图像视图中显示该相机最近拍摄的图像。但是我不知道如何访问最近单击的图像。每当通过 phone 单击任何新图像时,它都会被赋予一个默认的随机名称,我如何在图像视图的源中引用它?请建议我一些方法来做到这一点。我的代码是
class Incident extends Component {
constructor(props)
{ super(props)
this.state= {path:"",show:false,video:Camera.constants.CaptureMode.video,camera:Camera.constants.CaptureMode.camera}
}
render() {
return (
<View style={styles.container}>
<View style={{flex:72}}>
<Camera
ref={(cam) => {
this.camera = cam;
}}
style={styles.preview}
aspect={Camera.constants.Aspect.fill}
captureMode={this.state.camera}>
</Camera>
</View>
<View style={{flex:8,opacity:0.5,backgroundColor:'black'}}>
{()=>this.showClickedImage()}
</View>
<View style={{flex:10,flexDirection:'row',justifyContent:'space-between',backgroundColor:'#f3396b'}}>
<TouchableOpacity style={{flex:33,flexDirection:'column', alignItems: 'center',paddingTop:10}}>
<Image style={styles.icon} source={require('./Images/menu.png')}/>
<Text>Home</Text>
</TouchableOpacity>
<TouchableOpacity style={{flex:34,flexDirection:'column', height:70,alignItems: 'center',borderColor:'#dd1e52',borderWidth:1,paddingTop:5}}
onPress={()=>this.takePicture()}>
<Image style={{width:50,height:50}} source={require('./Images/capture.png')}/>
</TouchableOpacity>
<TouchableOpacity style={{flex:33,flexDirection:'column', alignItems: 'center',paddingTop:10}}>
<Image style={styles.icon} source={require('./Images/profile.png')}/>
<Text>Profile</Text>
</TouchableOpacity>
</View>
</View>
);
}
showClickedImage()
{
return <View style={{flex:1,height:40,width:40, borderWidth:1,borderColor:'black'}}>
<Image style={{width:40,height:40}} source= {{uri: this.state.path}}/>
</View>
}
takePicture()
{
this.camera.capture()
.then((data) =>{console.log(data.path),this.setState({show:true}),this.setState({path:data.path})})
.catch(err => console.error(err));
}
}
camera.capture()
returns 截取图片的路径。用它来显示 Image
组件。
<Image source={{uri: data.path}} style={{width: 100, height: 100}} />
我正在我的 React Native 应用程序中实现相机。单击后,我想在同一屏幕上的小图像视图中显示该相机最近拍摄的图像。但是我不知道如何访问最近单击的图像。每当通过 phone 单击任何新图像时,它都会被赋予一个默认的随机名称,我如何在图像视图的源中引用它?请建议我一些方法来做到这一点。我的代码是
class Incident extends Component {
constructor(props)
{ super(props)
this.state= {path:"",show:false,video:Camera.constants.CaptureMode.video,camera:Camera.constants.CaptureMode.camera}
}
render() {
return (
<View style={styles.container}>
<View style={{flex:72}}>
<Camera
ref={(cam) => {
this.camera = cam;
}}
style={styles.preview}
aspect={Camera.constants.Aspect.fill}
captureMode={this.state.camera}>
</Camera>
</View>
<View style={{flex:8,opacity:0.5,backgroundColor:'black'}}>
{()=>this.showClickedImage()}
</View>
<View style={{flex:10,flexDirection:'row',justifyContent:'space-between',backgroundColor:'#f3396b'}}>
<TouchableOpacity style={{flex:33,flexDirection:'column', alignItems: 'center',paddingTop:10}}>
<Image style={styles.icon} source={require('./Images/menu.png')}/>
<Text>Home</Text>
</TouchableOpacity>
<TouchableOpacity style={{flex:34,flexDirection:'column', height:70,alignItems: 'center',borderColor:'#dd1e52',borderWidth:1,paddingTop:5}}
onPress={()=>this.takePicture()}>
<Image style={{width:50,height:50}} source={require('./Images/capture.png')}/>
</TouchableOpacity>
<TouchableOpacity style={{flex:33,flexDirection:'column', alignItems: 'center',paddingTop:10}}>
<Image style={styles.icon} source={require('./Images/profile.png')}/>
<Text>Profile</Text>
</TouchableOpacity>
</View>
</View>
);
}
showClickedImage()
{
return <View style={{flex:1,height:40,width:40, borderWidth:1,borderColor:'black'}}>
<Image style={{width:40,height:40}} source= {{uri: this.state.path}}/>
</View>
}
takePicture()
{
this.camera.capture()
.then((data) =>{console.log(data.path),this.setState({show:true}),this.setState({path:data.path})})
.catch(err => console.error(err));
}
}
camera.capture()
returns 截取图片的路径。用它来显示 Image
组件。
<Image source={{uri: data.path}} style={{width: 100, height: 100}} />