1. 程式人生 > >Android使用camera實現拍照後停留在預覽介面的問題

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);