5 screenshot react-native react-native-camera
我正在使用React-Native-View-Shot 库来截取整个屏幕的屏幕截图。
文档中提到方法 captureScreen():
captureScreen() 将捕获当前显示屏幕的内容作为本机硬件屏幕截图。它不需要 ref 输入,因为它在视图级别不起作用。这意味着 ScrollView 不会被完整捕获 - 仅捕获用户当前可见的部分。
但是,屏幕截图未捕获除相机预览之外的任何组件。所使用的所有组件均声称受文档互操作性表中的支持。
代码:
takeScreenshot() {
captureScreen({
format: "jpg",
quality: 0.8
}).then(
uri => { savePath = uri; console.log("Image saved to", uri); CameraRoll.saveToCameraRoll(uri); ToastAndroid.show(uri + "", ToastAndroid.SHORT); },
error => console.error("Oops, snapshot failed", error)
);
}
render() {
return (
<View style={styles.container}>
<Text style={{backgroundColor:"white"}}>Hello World</Text>
<RNCamera style={styles.preview}
ref={ref => {
this.camera = ref;
}}
type={RNCamera.Constants.Type.back}
flashMode={RNCamera.Constants.FlashMode.on}
permissionDialogTitle={'Permission to use camera'}
permissionDialogMessage={'We need your permission to use your camera phone'}>
</RNCamera>
<Button title="Capture" onPress={()=>this.takeScreenshot()}/>
</View>
)
}
Run Code Online (Sandbox Code Playgroud)
RNCamera 是来自react-native-camera的相机组件
提到的问题也没有答案
可能是什么问题?为什么相机预览也覆盖了组件?
kri*_*ish -1
import ViewShot from "react-native-view-shot";
<ViewShot ref="viewShot" options={{ format: "jpg", quality: 0.9
}}>
<View style={styles.container} ref='snapViewPic'>
<RNCamera style={styles.preview}
ref={ref => {
this.camera = ref;
}}
type={RNCamera.Constants.Type.back}
flashMode={RNCamera.Constants.FlashMode.on}
permissionDialogTitle={'Permission to use camera'}
permissionDialogMessage={'We need your permission to
use your camera phone'}>
</RNCamera>
</View>
</ViewShot>
takeScreenShot () {
this.refs.viewShot.capture().then(uri => {
console.log("do something with ", uri);
});
}
Run Code Online (Sandbox Code Playgroud)
确保您的“捕获按钮”和“hello world”不得位于视图“容器”中。
这对我有用。
| 归档时间: |
|
| 查看次数: |
2333 次 |
| 最近记录: |