这是打开图库并选择图像进行裁剪的代码。我需要的改变是我不想打开画廊来挑选图像。我的imageview中已有图像。如何使用画廊的直接裁剪功能来传递uri图像。我需要在下面的代码中做什么修改。谢谢!
Intent intent = new Intent();
// call android default gallery
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
// ******** code for crop image
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 0);
intent.putExtra("aspectY", 0);
intent.putExtra("outputX", 200);
intent.putExtra("outputY", 150);
我用
修改了它Intent intent = new Intent("com.android.camera.action.CROP");
intent.setData(edtImgUri);
但它也无效。
答案 0 :(得分:1)
您必须将output
和outputFormat
Extra添加到意图中。输出应该被选择,以便它可以由系统(图库)编写,并由您的应用程序读取。
这对我有用:
final Intent intent = new Intent();
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
// We should always get back an image that is no larger than these
// dimensions
intent.putExtra("outputX", 128);
intent.putExtra("outputY", 128);
// Scale the image down to 128 x 128
intent.putExtra("scale", true);
intent.putExtra("windowTitle",
profileActivity.getString(R.string.pick_picture));
File tempFile = new File(Environment.getExternalStorageDirectory(),
"/crop_avatar.png");
mSavedUri = Uri.fromFile(tempFile);
intent.putExtra("output", mSavedUri);
intent.putExtra("outputFormat", "PNG");
profileActivity.startActivityForResult(intent, INTENT_PICK_PICTURE);