Android 写后读图像

Android 写后读图像,android,android-camera,Android,Android Camera,我已经写了一些Android代码,基本上我只使用内置摄像头拍照,保存它,然后尝试加载保存的文件,用它做一些事情 Camera camera = mPreview.getmCameraInstance(); Camera.PictureCallback pictureCallback = GetPictureCallback(mPreview.getmCameraInstance()); camera.takePicture(null, null, pictureCallback); Ma

我已经写了一些Android代码,基本上我只使用内置摄像头拍照,保存它,然后尝试加载保存的文件,用它做一些事情

Camera camera = mPreview.getmCameraInstance();
Camera.PictureCallback pictureCallback =
    GetPictureCallback(mPreview.getmCameraInstance());
camera.takePicture(null, null, pictureCallback);
Mat image = Highgui.imread(String.valueOf(file)); //Load Image here
但是,我的应用程序崩溃了,因为它在我加载图像的行中找不到文件。我不明白这一点,因为我认为我的代码将按顺序执行,然后我存储文件的
takePicture(…)
就已经完成了

你能帮我吗

编辑


当我将
线程.sleep(100)
放在前面时,我可以打开映像,因为它在当时已成功写入。

您需要等到调用回调后才能读取映像

什么是
GetPictureCallback
?如果是您自己的代码,则将图像读取移动到生成的回调中。。。如果没有,您可以执行以下操作:

Camera camera = mPreview.getmCameraInstance();
final Camera.PictureCallback otherPictureCallback =
    GetPictureCallback(mPreview.getmCameraInstance());
camera.takePicture(null, null, new Camera.PictureCallback {
    void onPictureTaken(byte[] data, Camera camera) {
        otherPictureCallback.onPictureTaken(data, camera);
        Mat image = Highgui.imread(String.valueOf(file)); //Load Image here     
    }
});

@MorrisonChang你能告诉我一个解决方案吗?我可以等待我的文件写入完成吗?这和一个按钮的onClickListener没有什么不同。这是一个好主意!我假设没有像使用
.join()
等待线程那样“等待”回调的方式,而不是自动的方式。