我在Android中使用相机,我是Android相机的新手。我已经按照here
的教程进行了操作每当我在android清单中添加外部存储权限时,相机会将其保存在默认目录中,而不会询问我,我想将其保存在我自己在sd卡中创建的文件夹中。我搜索了很多但找不到任何有用的链接。请帮助,任何帮助将不胜感激。谢谢:))
答案 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);