Android使用camera实现拍照后停留在预览界面的问题

camera实现拍照的代码:

 /**
     * 开始拍照
     */
    public void startCapture() {
        if (null != camera) {
            camera.takePicture(null, null, pictureCallback);
        }
    }

    private final Camera.PictureCallback pictureCallback = new Camera.PictureCallback() {

        @Override
        public void onPictureTaken(byte[] data, Camera camera) {
            //
            if (data != null) {
                //解析生成相机返回的图片
                try {
                    File dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
                    if (!dir.exists()) {
                        dir.mkdirs();
                    }
                    File mCaptureFile = new File(dir, System.currentTimeMillis() + ".jpg");
                    FileOutputStream fos = new FileOutputStream(mCaptureFile);
                    fos.write(data);
                    fos.close();
                    Toast.makeText(surfaceView.getContext(), "拍照成功", Toast.LENGTH_SHORT).show();
                } catch (Exception e) {
                    e.printStackTrace();
                    Toast.makeText(surfaceView.getContext(), "保存相片失败", Toast.LENGTH_SHORT).show();
                }
            } else {
                Toast.makeText(surfaceView.getContext(), "拍照失败,请重试", Toast.LENGTH_SHORT).show();
            }
           
        }
    };

运行起来会发现一个问题就是拍照完成后停留在预览界面,此时如果你不录像是没有问题的,但是如果你正在录像停留在当前界面是不是很尴尬,一番查找后只需要重新设置camera的参数就可以实现拍照完成后不预览画面,录像一直在进行是不是很爽

Camera.Parameters params = camera.getParameters();
            params.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
            camera.setParameters(params);

 

你可能感兴趣的:(Android使用camera实现拍照后停留在预览界面的问题)