我使用此代码启动裁剪活动,然后将裁剪后的图片作为onActivityResult中的数据返回。所以这很好。
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("scale", true);
intent.putExtra("return-data", true);
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);
这是用于将图像裁剪为200x200大小的代码,不管我在裁剪活动中选择的宽高比。我担心的是,我想要在活动中选择矩形的长宽比,而不是通过设置数字200和200来固定。
但是当我评论这两行时,我的程序会强行关闭......
是否有任何解决方法可以精确裁剪我在裁剪活动中选择的图片部分,同时保持纵横比与我放在照片上的矩形相比? 我必须把哪些数据作为附加内容?需要帮助!
答案 0 :(得分:2)
How to crop a rectangle from an image in android
无法使用裁剪为方形以外的任何其他形状 内置的Android裁剪处理 (com.android.camera.action.CROP)。
在下一个帖子中查看OP的回复 - 你可能有一个解决方案。
这个帖子也有一些很好的建议:
答案 1 :(得分:1)
只需为宽高比0.75
intent.putExtra("aspectX", 3);
intent.putExtra("aspectY", 4);
并将比例设置为true
。
这应该可以解决问题。
答案 2 :(得分:0)
回答可能为时已晚,考虑到其他人可能会在同一个问题上来到这个主题。
cropIntent.putExtra("aspectX", 1);
cropIntent.putExtra("aspectY", 1);
将确保您始终获得一个矩形。
答案 3 :(得分:0)
从图库和裁剪中选择图像,保持纵横比。在这种情况下,比率是BANNER_WIDTH_PX:BANNER_HEIGHT_PX。
configure.ac