0

在我的 Android 应用程序中,我想拍照。我有三星galaxy Gio(Android 2.3.3)并且我只是在使用camera.takePicture(null, null, Activity.this);,在我的Activity中我实现了PictureCallback方法并且一切都很好,直到我在Sony Xperia S(Android 4.0)上检查了我的应用程序,在这款手机上预览没有冻结但是它拍了一张照片,所以我camera.stopPreview()在拍照后添加了功能,现在它在 Xperia S 上运行良好,但在我的三星 GIO 上实现此功能后,我的屏幕在拍照后变黑,有人知道如何解决吗?感谢帮助

这是我的代码:

当用户单击框架布局时,我使用:

case R.id.camera_preview:
        camera.takePicture(null, null, Activity.this);
        break;

在Activity中我实现了picturecallback方法:

public void onPictureTaken(byte[] data, Camera arg1) {
    imageData = data;
    cam_preview.stopPreview();
}

我没有立即保存图像,因为我让用户选择保存或不保存图片

4

1 回答 1

0

来自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()。”

所以根据这个图片回调应该如下:

public void onPictureTaken(byte[] data, Camera arg1) {
     imageData = data;
     cam_preview.startPreview();
}
于 2013-03-03T18:25:14.423 回答