将Android相机拍摄的图像存储在“文件”中

时间:2018-09-30 00:32:54

标签: android

我认为这个问题之前已经回答过,但是没有一个对我有用。我正在制作一个应用程序,该应用程序会定期拍摄图片并将其存储在手机上的某个位置。我克隆了CameraView存储库。我不知道为什么图片没有存储。我要在下面发布代码的相关部分

这是拍照

private View.OnClickListener mOnClickListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.take_picture:
                    if (mCameraView != null) {
                        for (int i = 0; i < 15; i++) {
                            mCameraView.takePicture();
                            try {
                                Thread.sleep(300);
                            } catch (InterruptedException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                    break;
            }
        }
    };

这是用来存储图片的:

public void onPictureTaken(CameraView cameraView, final byte[] data) {
            Log.d(TAG, "onPictureTaken " + data.length);
            Toast.makeText(cameraView.getContext(), R.string.picture_taken, Toast.LENGTH_SHORT)
                    .show();
            getBackgroundHandler().post(new Runnable() {
                @Override
                public void run() {
                    File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS),
                            "picture.jpg");
                    OutputStream os = null;
                    try {
                        os = new FileOutputStream(file);
                        os.write(data);
                        os.close();
                    } catch (IOException e) {
                        Log.w(TAG, "Cannot write to " + file, e);
                    } finally {
                        if (os != null) {
                            try {
                                os.close();
                            } catch (IOException e) {
                                // Ignore
                            }
                        }
                    }
                }
            });
        }

谢谢您的帮助!

0 个答案:

没有答案