有没有办法使用相机,但只能临时保存图像?我正在使用以下代码加载相机,然后我使用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();
图像永远不会被删除。此外,如果我进入我的图库应用程序,图像中有一个默认名称(如image57465.jpg),我认为cameraIntent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );
实际上并没有工作。
编辑2
实际上,文件正在保存到SDCARD,并正确删除。但是,似乎正在保存缩略图。我想知道如何获取缩略图路径,以便我可以在使用它之后删除它吗?
答案 0 :(得分:6)
那么,你不能在完成使用后删除图像吗?我刚刚快速检查了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();
}
}
}
让我知道它是否适合你。
答案 1 :(得分:1)
在捕获时&保存,将imagepath存储到变量中,一旦您的活动完成,然后从存储中删除文件(变量)
File mFile=new File(variable);
mfile.delete();