0
您好我有一個應用程序使用SurfaceViews,我想顯示拍攝的照片的預覽圖像以及讓用戶重試拍照。我遇到的問題是,方法PictureCallback是一個匿名函數,因此我無法返回任何文件名或ID,讓我抓取圖片並將其與重試按鈕一起顯示在SurfaceView上。你知道我能做到嗎?在PictureCallback()函數在這裏:(我已經編輯原創,而不是保存到我保存到一個全局變量文件,這樣我可以通過我的CameraHelper對象日後訪問)如何在Android中使用ImageView拍攝照片後顯示拍攝的圖片並避免同步問題
// global variable to access the bitmap when the camera callback has finished processing.
private bitmapPicture;
方法拍攝照片:
public void takeThePicture(Camera mCamera)
{
Log.d("Camera Information","Taking the picture inside takeThePicture() method");
// picture callback method is required to take a picture
Camera.PictureCallback mPicture = new Camera.PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
// Create a Bitmap picture that we can later access through other way.
bitmapPicture = BitmapFactory.decodeByteArray(data, 0, data.length);
}
};
mCamera.takePicture(null,null,mPicture);
}
訪問的畫面一直在努力的唯一的問題是,它返回先前的畫面,我注意到這樣,所以訪問到bitmapPicture變量的時間同步問題以及數據被保存到其中的時間。
希望你能幫助我:) 謝謝!
感謝您的答案亞歷克斯,我仍然不完全理解我將如何能夠溝通我的處理程序和我的活動。我的活動裏面有3個片段,其中一個有ImageView和我拍照的相機預覽。如果我正在使用CameraHelper對象,當圖片回調方法被調用時,如何能夠從我的CameraHelper對象訪問我的imageView?或者我會如何讓我的片段知道相機何時完成拍照?現在也不是用圖像創建文件,而是直接將數據發送到位圖以避免IO延遲問題 – 2014-11-18 07:41:46