我有一个问题。我正在使用从这样的菜单按钮开始的相机意图
case R.id.camera:
final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(getTempFile(this)));
startActivityForResult(intent, TAKE_PHOTO_CODE);
return true;
这工作得很好,它保存了原始图像(我想要的原始尺寸)。
比我还有以下代码
private File getTempFile(LovneDobe lovneDobe) {
final File path = new File( Environment.getExternalStorageDirectory(), lovneDobe.getPackageName() );
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory())));
if(!path.exists()){
path.mkdir();
}
return new File(path, "image.jpg");
}
此代码将图片保存在SD卡上,并将其放入我的图库中。但我面临的问题是它只能保存一张图片。当我拿另一个时,它会覆盖前一个。 而现在我的问题是如何修改它以便它可以保存我将拍摄的每张照片?
提前感谢愿意提供帮助的任何人。
答案 0 :(得分:1)
我很确定这是因为你明确地覆盖了该文件。在您的方法“getTempFile”中,每次调用方法时,总是给出相同的路径和名称。例如,尝试使用静态计数器来了解您已完成的图片数量,并在返回时添加类似
的内容 return new File(path, "image"+counter+".jpg");