2011-11-29 54 views
1

我实现了一个系统,可以在我的应用程序中使用Android类相机拍照。全部运行良好,但拍摄照片后,我希望在用户身上显示预览,并让他选择保存图片或取消图片。我的问题是预览。预览显示在mCamera.startPreview();之后,仅在几秒钟内显示,有或没有mCamera.stopPreview();。我会延长显示时间或冻结预览,直到某些事件发生。冻结相机预览的方法

有人知道凝结预览一段时间的方法吗?

谢谢。

+0

可能重复[Android(Camera) - 如何syncronize stopPreview()与onPictureTaken()?](http://stackoverflow.com/questions/10924038/android-camera-how-to-syncronize-stoppreview-with -onpicturetaken) –

回答

1

您将需要获取所拍摄的图像并显示它。

+1

当我发布这个问题时,我已经开始使用这种方式。但是,为什么在Camera类在每次拍摄照片后都会预览ImageView时使用ImageView?这就是我发布这个问题的原因。 但与此同时,我发现了一种使用相机预览的方式。在事件监听器“onPictureTaken”中,我只是停止相机,预览保持在屏幕上。要再次拍摄照片,我只需放一个“重试”按钮以再次运行相机。在此事件按钮上,我重新启动相机,相机将删除预览。所有拍摄照片并保存的动作都会正常运行。 谢谢。 – damson

+0

我有一个设备(华为U8650运行android 2.3.3),其中camera.stopPreview()方法使surfaceview完全黑色,而不是冻结图像。我想知道这个问题是否发生在这台设备上,或者这是一个常见问题。 在其他设备上,我提供了您提到的方法,效果很好。 – Miquel

+0

不知道,对不起。 – njzk2

0

拍摄照片后,预览将停止。但是,停止的预览不一定对应于实际拍摄的照片。为此,您必须获取图片并通过ImageView或类似的东西显示。

http://developer.android.com/reference/android/hardware/Camera.html#takePicture(android.hardware.Camera.ShutterCallback, android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback)

此方法才有效时预览是活动的(后 startPreview())。图像拍摄后,预览将停止; 如果要重新启动 预览或拍摄更多照片,则呼叫者必须再次调用startPreview()。这不应该在 start()和stop()之间调用。在调用此方法后,您不得调用 startPreview()或拍摄另一张照片,直到返回JPEG回调的 。