当前位置: 代码迷 >> Android >> 剪切图片-扩张android 选择图片(从手机照相机或手机图片)
  详细解决方案

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

热度:54   发布时间:2016-05-01 13:55:51.0
剪切图片-扩展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();        	}        }	}

?

  相关解决方案