1

我的问题是每当我保存位图时。我将一个保存在我想要的文件夹(MyFolder)中,一个保存在 DCIM/Camera 中。我没有看到任何使其保存在 DCIM 目录中的代码?

这是我的代码...

    case R.id.menu_save:
        try {

            String path = Environment.getExternalStorageDirectory()
                    .toString();
            File myNewFolder = new File(path + "/MyFolder");
            myNewFolder.mkdirs();
            OutputStream fOut = null;
            File file = new File(path, "/MyFolder/HK" + filename + ".jpg");
            fOut = new FileOutputStream(file);

            newBitmap.compress(Bitmap.CompressFormat.JPEG, 85, fOut);
            fOut.flush();
            fOut.close();

            MediaStore.Images.Media.insertImage(getContentResolver(),
                    file.getAbsolutePath(), file.getName(), file.getName());

            Toast.makeText(getApplicationContext(),
                    filename + "Has been saved!", Toast.LENGTH_LONG)
                    .show();

        } catch (Exception e) {

            Toast.makeText(
                    getApplicationContext(),
                    "Problem to Save the File", Toast.LENGTH_LONG).show();
        }

        break;
4

1 回答 1

0

与@Dixit 链接的线程一样,您可以指定文件路径URI

File fileDir = new File(Environment.getExternalStorageDirectory() +
    "/saved_images");
fileDir.mkdirs();

File file = new File(fileDir, "image.jpg");

Uri outputFileUri = Uri.fromFile(file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);

这样相机会将图像保存到指定路径而不是 DCIM 文件夹。

编辑:您必须事先在 sdcard 上创建文件夹,也许这就是问题所在。否则,这应该有效。

于 2013-01-01T08:51:13.970 回答