0

我有以下问题。我正在使用从这样的菜单按钮开始的相机意图

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 卡上,并将其放入我的画廊。但我面临的问题是它只保存一张图片。当我再拿一个时,它会覆盖前一个。现在我的问题是如何修改它以保存我要拍摄的每张照片?

提前感谢任何愿意提供帮助的人。

4

1 回答 1

1

我很确定这是因为您明确地覆盖了文件。在您的方法“getTempFile”中,每次调用该方法时,您总是给出相同的路径和名称。例如,尝试使用静态计数器,以了解您已经完成了多少张图片,然后在返回时输入类似

           return new File(path, "image"+counter+".jpg");
于 2011-04-29T13:00:31.273 回答