【问题标题】:How to create separate folder for captured images with losing quality如何为质量下降的捕获图像创建单独的文件夹
【发布时间】:2018-05-04 05:00:18
【问题描述】:

您好,我正在尝试使用以下代码为捕获的图像创建 单独的文件夹而不会丢失质量,但我收到异常 android.os.FileUriExposedException: file:///storage/emulated /0/myFolder/photo_20180504_102426.png 通过 ClipData.Item.getUri() 暴露在应用之外

mi-stack 做了什么可以纠正我的代码

代码:

String folder_main = "myFolder";
            File f = new File(Environment.getExternalStorageDirectory(), folder_main);
            if (!f.exists()) {
                f.mkdirs();
            }
            String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
            File file = new File(Environment.getExternalStorageDirectory(), "/myFolder" + "/photo_" + timeStamp + ".png");
            imageUri = Uri.fromFile(file);

            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
            startActivityForResult(intent, Constants.CAMERA_REQUEST_CODE);

 private void onCaptureImageResult(Intent data) {

        try {

            Bitmap thumbnail = MediaStore.Images.Media.getBitmap(getContentResolver(), imageUri);
            CircleImageView circleImageView = findViewById(formFields.get(imagePosition).getId());
            circleImageView.setImageBitmap(thumbnail);
}

【问题讨论】:

  • 你在使用 FileProvider 吗?
  • 不,我没有使用
  • 那么你从谷歌搜索的那一千个例子中选错了。使用文件提供程序!

标签: android android-camera


【解决方案1】:

把它放在你的 oncreate() 上

StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
StrictMode.setVmPolicy(builder.build());

【讨论】:

  • 哦,让我试试看结果
  • 你可以试试。有用。但这是一个糟糕的可耻解决方案。您应该使用文件提供程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-04
  • 2017-05-06
  • 2010-12-03
  • 1970-01-01
相关资源
最近更新 更多