剪切图片-扩张android 选择图片(从手机照相机或手机图片)

剪切图片-扩展android 选择图片(从手机照相机或手机图片)这里给出关键部分代码,其余和文章《android 选择图

剪切图片-扩展android 选择图片(从手机照相机或手机图片)

这里给出关键部分代码,其余和文章《android 选择图片(从手机照相机或手机图片)》类似

 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("scale", true);            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();        }        }}

?