Androidはカメラを使って撮影後にプレビュー画面にとどまる問題を実現

1942 ワード

カメラは写真を撮るコードを実現します:

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