是否com.android.camera.action.CROP不适用于Android果冻豆4.3?

我使用com.android.camera.action.CROP在使用相机拍摄照片后进行剪裁。

下面是我以前在4.3之前工作的代码。

Intent cropIntent = new Intent("com.android.camera.action.CROP"); cropIntent.setType("image/*"); cropIntent.putExtra("crop", "true"); cropIntent.putExtra("aspectX", 1); cropIntent.putExtra("aspectY", 1); cropIntent.putExtra("outputX", Conf.getInt("IMAGE_WIDTH")); cropIntent.putExtra("outputY", Conf.getInt("IMAGE_HEIGHT")); cropIntent.putExtras(extras); startActivityForResult(cropIntent, CROP_REQUEST_CODE); 

但现在,由于Android作物行动把你带到画廊(因为画廊是默认的作物),这种裁剪方法失败(照片不保存到画廊)。

有没有人知道解决这个问题的方法。 在哪里我可以使用相机拍摄的照片上的作物

Solutions Collecting From Web of "是否com.android.camera.action.CROP不适用于Android果冻豆4.3?"

复制早前提出的类似问题的答案。

你有没有考虑过像这样的图书馆:

GitHubLink

我发现com.android.camera.action.CROP的行为有时候可能不同于手机,并且不总是可用的,所以如果你想释放它,它可能会给你带来一些问题。

更新:

我已经用Android 4.3testing了上面的库,它没有问题。 您只需要将库添加到您的项目。

然后你可以用非常相似的方式编写你的方法:

 private void performCrop(Uri picUri) { //you have to convert picUri to string and remove the "file://" to work as a path for this library String path = picUri.toString().replaceAll("file://", ""); try { int aspectX = 750; int aspectY = 1011; Intent intent = new Intent(this, CropImage.class); //send the path to CropImage intent to get the photo you have just taken or selected from gallery intent.putExtra(CropImage.IMAGE_PATH, path); intent.putExtra(CropImage.SCALE, true); intent.putExtra("aspectX", aspectX); intent.putExtra("aspectY", aspectY); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(mCurrentPhotoPath))); startActivityForResult(intent, CROP); } catch (ActivityNotFoundException anfe) { String errorMessage = "Your device doesn't support the crop action!"; Toast toast = Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT); toast.show(); } 

根据@commonsware的post
这个意图是基于AOSP camera app ,可能会或可能不会在目标设备上可用,对于一些4.3的设备,它可能工作,而对于一些它不会。

所以更好的方法是使用Android阿森纳的任何开源库
(确保它们不是基于AOSP )。

我已经尝试了几个收割机。 特别是普通软件所引用的不是很好。 例如,元信息中旋转数据拍摄的图片旋转不准。 我find了这个: https : //android-arsenal.com/details/1/3487和它的伟大。 注意:确保你添加一个操作栏主题的活动!