【发布时间】:2014-09-27 12:37:22
【问题描述】:
我开始遵循意图:
Intent cropIntent = new Intent("com.android.camera.action.CROP");
cropIntent.setDataAndType(data.getData(), "image/*");
cropIntent.putExtra("crop", "true");
cropIntent.putExtra("outputX", wallWidth);
cropIntent.putExtra("outputY", wallHeight);
cropIntent.putExtra("aspectX", wallWidth);
cropIntent.putExtra("aspectY", wallHeight);
cropIntent.putExtra("scale", true);
cropIntent.putExtra("scaleUpIfNeeded", true);
cropIntent.putExtra("return-data", true);
cropIntent.putExtra("noFaceDetection", true);
在我的例子中,wallWidth 和 wallHeight 是 960/800,然后这个意图停留在裁剪上(这个加载圈一直在旋转)。 如果我在那里输入大约 400 或更少的输出,它会完美运行。 我怎样才能解决这个问题?因为我想有一个更高分辨率的位图作为输出。
【问题讨论】:
-
Android 没有
CROPIntent: commonsware.com/blog/2013/01/23/… -
我知道,但有些智能手机有它
-
是的,但“一些”不是“全部”。如果您的目标是拥有一个在大多数 Android 设备上兼容的应用程序,请不要依赖未记录、不受支持的
Intent操作。使用库或实现您自己的图像裁剪 UI。 -
是的,我创建了自己的裁剪 UI,但只有在上面的 Intent 不存在时才会开始。所以你不知道我的问题的答案?
-
您的问题的答案是停止使用
Intent操作。即使设备具有支持它的活动,该活动也可能无法正常工作。设备制造商通常会破坏对记录和支持的操作的支持(例如,ACTION_IMAGE_CAPTURE)。未记录和不受支持的操作的可靠性往往会更差。而且,既然您已经将更好的替代方案集成到您的应用中,请使用它。
标签: android android-intent crop