如何使用默认裁剪意图裁剪 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 aCROP
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 中的图像?的主要内容,如果未能解决你的问题,请参考以下文章