android点击进行拍照,把拍到的图回传给ImageView

之前写过一个拍照+回传的功能,觉得不错,记下来。

 /**
     * 拍照
     *
     */
    private void goPicture() {
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//开始拍照
        //设置路径
        strImgPath = Environment.getExternalStorageDirectory().toString() + "/YDSW_PIC/";

        userNumber = etUserNubmer.getText().toString().trim();

        if (null != userNumber && !TextUtils.isEmpty(userNumber)) {
            //给照片命名
            fileName = getPhotoFileName() + ".jpg";
        } else {
            ViewUtils.showToast("请选择用户", getApplicationContext());
            return;
        }
        //创建新文件
        File out = createNewFile(strImgPath, fileName);

        // 该照片的绝对路径
        strImgPath = strImgPath + fileName;

        //根据uri保存照片
        Uri uri = Uri.fromFile(out);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);

        //保存照片的质量
        intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0);
        startActivityForResult(intent, CAMERA_RESULT);//启动相机拍照
    }

    private File createNewFile(String strImgPath, String fileName) {
        File out = new File(strImgPath);
        if (!out.exists()) {
            out.mkdirs();
        }
        File file = new File(strImgPath, fileName);
        return file;
    }


    private String getPhotoFileName() {
        //用户编号为图片的名字
        //先取用户编号,取不到的情况下不拍照
        String userNumber = baseUserNo;
        return userNumber;
    }

 然后通过onActivityResult()这个方法的回调来执行后续的赋值操作

@Override
    protected void onActivityResult(int requestCode, int resultCode, final Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK && requestCode == 1) {
            //压缩图片
            Bitmap compress = BitmapCompressor.decodeSampledBitmapFromFile(strImgPath, 600, 450);
            //保存图片
            BitmapCompressor.saveBitmapFile(waterMark, strImgPath);

            //给iv赋值
            imageViewOcrView.setImageBitmap(waterMark);
        }
}


你可能感兴趣的:(android开发遇到过的坑)