2011-11-29 56 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回調的 。