2011-08-14 99 views
5

有没有办法使用相机,但只能暂时保存图像?我用下面的代码加载了相机,那么我使用onActivityResult()来获取拍摄的图像(如果有的话......)启动相机意图,但不保存图像

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 

的问题是,当图像被拍摄,它被保存到SD卡。

编辑

的目的是通过下面的代码

String imagePath; 

imagePath = Environment.getExternalStorageState() + "/images/myimage.jpg"; 
File file = new File(imagePath); 
Uri outputFileUri = Uri.fromFile(file); 

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST); 

当活动返回数据(onActivityResult)我使用

File imageFile = new File(imagePath); 
imageFile.delete(); 

Howver图像不会被调用删除。另外,如果我进入我的画廊应用程序,图像是有一个默认名称(如image57465.jpg),我假设cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);实际上并没有工作。

EDIT 2

事实上,该文件被保存到的SD卡,并正确删除。但是,似乎缩略图正在保存。 Ay的想法如何获得缩略图路径,所以我可以删除它后,我用它?

回答

5

那么删除文件(变量)的时候,你就不能删除图像当你完成使用它?我只是快速检查了Camera API规范,并且我无法找到任何表明可以将图像标记为临时图像的任何内容。

尝试以下操作:

public onActivityResult(int request, int result, Intent data) { 

    if(request == CAPTURE_IMAGE) { 

     if(result == RESULT_OK) { 

      /*Use the image in the way you want to here and save the path */ 

      //Delete the image 
      File image = new File(path); 
      image.delete(); 

     } 

    } 

} 

让我知道,如果它送给你。

+0

'path'从哪里来? – dotty

+0

我已更新我的代码,请参阅上文。 – dotty

1

在捕获&储蓄,存储的ImagePath的变量,一旦您的活动完成,然后从存储

File mFile=new File(variable); 
mfile.delete(); 
+0

我已更新我的代码,请你看一看。 – dotty

+0

取代此 imagePath = Environment.getExternalStorageState()+“/images/myimage.jpg”; 与 imagePath = getExternalStorageDirectory()+“/images/myimage.jpg”; 再试一次朋友 –

相关问题