1

私の問題は、ビットマップを保存するたびです。1 つを必要なフォルダー (MyFolder) に保存し、もう 1 つを 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フォルダーではなく指定されたパスに画像を保存します。

編集:あなたは事前にSDカード上にフォルダを作成する必要があります、多分それは問題です。それ以外の場合、これは機能するはずです。

于 2013-01-01T08:51:13.970 に答える