将捕获的图像保存在SD卡上的特定文件夹中

时间:2014-08-11 11:16:12

标签: android android-camera android-camera-intent

我在Android中使用相机,我是Android相机的新手。我已经按照here

的教程进行了操作

每当我在android清单中添加外部存储权限时,相机会将其保存在默认目录中,而不会询问我,我想将其保存在我自己在sd卡中创建的文件夹中。我搜索了很多但找不到任何有用的链接。请帮助,任何帮助将不胜感激。谢谢:))

3 个答案:

答案 0 :(得分:4)

您可以在onActivityResult中添加此代码。这会将您的图像存储在名为“YourFolderName”

的文件夹中
String extr = Environment.getExternalStorageDirectory().toString()
            + File.separator + "YourFolderName";
    File myPath = new File(extr, fileName);
    FileOutputStream fos = null;
    try {
        fos = new FileOutputStream(myPath);
        bitMap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
        fos.flush();
        fos.close();
        MediaStore.Images.Media.insertImage(context.getContentResolver(),
                bitMap, myPath.getPath(), fileName);
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

还需要在Manifest上设置权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

答案 1 :(得分:1)

  

相机将其保存在默认目录中而不询问我,我想将其保存在我在SD卡中创建的文件夹中

您可以告诉相机您希望照片的存储位置via EXTRA_OUTPUT,如the documentation's training module on ACTION_IMAGE_CAPTURE所示。

尽管如此,并不要求所有相机都存储您要求的图像。如果在拍摄图像后您要求的文件不存在,则需要回退到现有的应用程序逻辑。

答案 2 :(得分:0)

您可以指定将图像数据写入特定位置的路径,如下所示:

String fileName = "/mnt/sdcard/foldername";
FileOutputStream  fos = new FileOutputStream(fileName);
fos.write(data);