为了账号安全,请及时绑定邮箱和手机立即绑定

拍摄相机意图后删除图库图像

拍摄相机意图后删除图库图像

阿波罗的战车 2019-07-26 11:27:21
拍摄相机意图后删除图库图像我知道这有许多不同的方式,但我似乎无法从默认文件夹中删除图库图像。我正确地将文件保存到SD卡,我可以删除该文件,但在Camera文件夹下显示的默认图库文件不会删除。我希望在返回活动后删除图像,因为文件已存储在SD卡下/Coupon2。有什么建议?public void startCamera() {     Log.d("ANDRO_CAMERA", "Starting camera on the phone...");     mManufacturerText = (EditText) findViewById(R.id.manufacturer);     String ManufacturerText = mManufacturerText.getText().toString();     String currentDateTimeString = new Date().toString();     Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);     File filedir = new File(Environment.getExternalStorageDirectory()+"/Coupon2");     filedir.mkdirs();     File file = new File(Environment.getExternalStorageDirectory()+"/Coupon2", ManufacturerText+"-test.png");     outputFileUri = Uri.fromFile(file);     intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);     startActivityForResult(intent, CAMERA_PIC_REQUEST);}protected void onActivityResult(int requestCode, int resultCode, Intent data) {       super.onActivityResult(requestCode, resultCode, data);     if (requestCode == CAMERA_PIC_REQUEST && resultCode == -1) {           Intent intent = new Intent("com.android.camera.action.CROP");         intent.putExtra("crop", "true");         intent.putExtra("scale", "true");         intent.putExtra("return-data", false);         intent.setDataAndType(outputFileUri, "image/*");         intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);         startActivityForResult(intent, CAMERA_CROP_REQUEST);     }else {          SetImage();         saveState();     }}
查看完整描述

3 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

这将从库中删除该文件:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == CAMERA_PIC_REQUEST && resultCode == RESULT_OK) { 

        /* Copy the file to other directory or whatever you want */

        // mContext is the context of the activity
        mContext.getContentResolver().delete(data.getData(), null, null);
    }
 }

关于EXTRA_OUTPUT不是标准行为。我认为这种伪算法应该适用于所有情况:

1)不要使用EXTRA_OUTPUT。图像/照片始终会转到图库位置。

2)将文件从库位置复制到所需位置。

3)从库中删除(使用上面的代码)文件。

但是当然它似乎太完美了......在某些设备中(例如原版带有android 2.3的Galaxy Tab),你必须使用EXTRA_OUTPUT和ACTION_IMAGE_CAPTURE,否则意图不起作用。


查看完整回答
反对 回复 2019-07-26
  • 3 回答
  • 0 关注
  • 469 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信