我已经成功地开发了一个完整的相机应用程序,但是在保存照片之前,我希望能够在屏幕上显示捕获的照片(它们不会被发送到图库)。我进行了广泛的谷歌搜索,但找不到相关的内容。我也不知道如何开始处理,因此如果您有任何建议或相关信息的链接,那将非常棒。谢谢!
我已经成功地开发了一个完整的相机应用程序,但是在保存照片之前,我希望能够在屏幕上显示捕获的照片(它们不会被发送到图库)。我进行了广泛的谷歌搜索,但找不到相关的内容。我也不知道如何开始处理,因此如果您有任何建议或相关信息的链接,那将非常棒。谢谢!
首先,我假设您正在使用原始的相机API,而不是Camera2。该功能确实内置于预览捕获中,因此我假设您的代码只是清除了预览太快。
在调用Camera.startPreview()
以在活动表面上呈现实时预览之后,随着某个时间点调用Camera.takePicture()
来触发图像捕获,并将结果返回给PictureCallback
。一旦图像被捕获,相机预览表面即冻结在该帧上,直到重新启动为止。因此,只要您在onPictureTaken()
内部不再调用Camera.startPreview()
来重新启动该过程,则SurfaceView
将保持冻结在您想让用户看到的帧上。
然后,如果他们想保存,您可以将JPEG数据写入磁盘,如果不需要则丢弃该数据。