如何使用默认裁剪意图裁剪 android marshmallow 中的图像?

Posted

技术标签:

【中文标题】如何使用默认裁剪意图裁剪 android marshmallow 中的图像?【英文标题】:How to Crop the image in android marshmallow by using default crop intent? 【发布时间】:2016-10-18 13:29:26 【问题描述】:

在我的应用程序要求中,从图库中选择图像,然后裁剪所选图像并设置为图像视图。下面是我裁剪图像的示例代码。

//call the standard crop action intent (the user device may not support it)
    Intent cropIntent = new Intent("com.android.camera.action.CROP");
    cropIntent.setClassName("com.android.camera", "com.android.camera.CropImage");
    //indicate image type and Uri
    cropIntent.setDataAndType(mImageCaptureUri, "image/*");
    //set crop properties
    cropIntent.putExtra("crop", "true");
    //indicate aspect of desired crop
    cropIntent.putExtra("aspectX", 1);
    cropIntent.putExtra("aspectY", 1);
    //indicate output X and Y
    cropIntent.putExtra("outputX", 256);
    cropIntent.putExtra("outputY", 256);
    //retrieve data on return
    cropIntent.putExtra("return-data", true);
    cropIntent.putExtra(MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
    cropIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
    //start the activity - we handle returning in onActivityResult
   startActivityForResult(cropIntent, PIC_CROP);

上面的代码在下面的 android marshmallow 设计中运行良好,但是 android marsh mallow 它崩溃了。如何解决这个问题?

【问题讨论】:

Android does not have a CROP Intent。有很多image cropping libraries available for Android。请使用一个。 @CommonsWare 感谢回复,android marshmallow 没有裁剪意图吗? @CommonsWare 我尝试添加裁剪库,但应用程序大小增加。这就是我正在寻找默认裁剪的原因 Android 操作系统的任何版本都没有CROP Intent。您正在使用最初为特定相机应用程序创建的未记录且不受支持的 Intent 操作。 一些其他相机应用程序可能支持Intent某些 Android 设备可能会附带这些相机应用程序之一。但是有 数以千计 种 Android 设备型号,并非所有型号都预装了支持 Intent 的应用程序。 “这就是我寻找默认裁剪的原因”——Android 中没有“默认裁剪” @CommonsWare 谢谢,请推荐任何裁剪库? 【参考方案1】:

使用裁剪实现相机和图库的最简单方法是使用库。市场上有很多第三方库可用,但没有一个适用于所有设备。 有一个可用的库在不同的设备和几家公司的设备上都是稳定的。 https://github.com/biokys/cropimage 使用这个演示。 这是一个非常古老的库,但它在所有不同的设备上都很稳定。

【讨论】:

以上是关于如何使用默认裁剪意图裁剪 android marshmallow 中的图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android 相机上使用意图添加功能裁剪图像?

是否可以自定义 android 的相机裁剪意图视图?

Android - 相机和画廊意图后的裁剪给出了奇怪的结果

使用“com.android.camera.action.CROP”意图裁剪图像,在某些设备上返回小尺寸位图

如何将旋转按钮添加到 Android 图像裁剪屏幕?

如何在 iOS 中实现类似于 Android 手机(默认)的裁剪功能?