活动在Android中的onActivityResult之后关闭

时间:2014-09-15 07:53:34

标签: android android-camera crop android-gallery

当我试图从图库/相机中裁剪图像时。我保存了裁剪图像然后关闭了我的活动。如何保持我的活动onResume状态。我没有在我的代码中完成我的活动。任何人都建议我。

这是我的代码:

if(requestCode == 2){
            doCrop();
        }else if(requestCode == 3){
            mImageCaptureUri = data.getData();
            doCrop();
        }else if(requestCode == 4){
            Bundle extras = data.getExtras();

            if (extras != null) {               
                Bitmap photo = extras.getParcelable("data");
                GiftcardGive1.userselectedImageName=BitMapToString(photo);
                customGiftCardPic.setImageBitmap(photo);
            }

            File f = new File(mImageCaptureUri.getPath());            

            if (f.exists()) f.delete();
    }



private void doCrop() {
        final ArrayList<CropOption> cropOptions = new ArrayList<CropOption>();

    Intent intent = new Intent("com.android.camera.action.CROP");
       intent.setType("image/*");

       List<ResolveInfo> list = getPackageManager().queryIntentActivities( intent, 0 );

       int size = list.size();

       if (size == 0) {         
        Toast.makeText(this, "Can not find image crop app", Toast.LENGTH_SHORT).show();

           return;
       } else {
        intent.setData(mImageCaptureUri);

           intent.putExtra("outputX", 200);
           intent.putExtra("outputY", 200);
           intent.putExtra("aspectX", 1);
           intent.putExtra("aspectY", 1);
           intent.putExtra("return-data", true);

        if (size == 1) {
            Intent i        = new Intent(intent);
                ResolveInfo res = list.get(0);

                i.setComponent( new ComponentName(res.activityInfo.packageName, res.activityInfo.name));

                startActivityForResult(i, CROP_FROM_CAMERA);
        } else {
                for (ResolveInfo res : list) {
                    final CropOption co = new CropOption();

                    co.title    = getPackageManager().getApplicationLabel(res.activityInfo.applicationInfo);
                    co.icon     = getPackageManager().getApplicationIcon(res.activityInfo.applicationInfo);
                    co.appIntent= new Intent(intent);

                    co.appIntent.setComponent( new ComponentName(res.activityInfo.packageName, res.activityInfo.name));

                    cropOptions.add(co);
                }

                CropOptionAdapter adapter = new CropOptionAdapter(getApplicationContext(), cropOptions);

                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.setTitle("Choose Crop App");
                builder.setAdapter( adapter, new DialogInterface.OnClickListener() {
                    public void onClick( DialogInterface dialog, int item ) {
                        startActivityForResult( cropOptions.get(item).appIntent, CROP_FROM_CAMERA);
                    }
                });

                builder.setOnCancelListener( new DialogInterface.OnCancelListener() {
                    @Override
                    public void onCancel( DialogInterface dialog ) {

                        if (mImageCaptureUri != null ) {
                            getContentResolver().delete(mImageCaptureUri, null, null );
                            mImageCaptureUri = null;
                        }
                    }
                } );

                AlertDialog alert = builder.create();

                alert.show();
        }
       }
    }

0 个答案:

没有答案