裁剪照片¶
CropIntent
允许你快速构建裁剪照片的 Intent 。输出格式为 jpg
。
CropIntent 和 CropPhotoContract
建议配合 CropPhotoContract 使用
快速使用¶
你可以选择以下三种方式来调用裁剪应用,其主要区别如下:
- 如果使用
VastCropActivity
,则会通过基于 CropViewLayout 所构建的裁剪应用。 - 如果使用
CropIntent
,需要手动获取返回图片的Uri
并参考 关于 uri 权限 手动收回权限。 - 如果使用
CropIntent
和CropPhotoContract
,则无需手动设置返回图片的Uri
以及取消权限。
graph LR
A[调用裁剪]-->B[使用 VastCropActivity]
A-->C[使用 CropIntent]
A-->D[使用 CropIntent 和 CropPhotoContract]
可以参考 示例代码 来查看完整的使用示例。
设置输出图像名称¶
调用 setOutputName
来设置图像名称,如果不设置则使用 默认值 。
val cropIntent = CropIntent()
... // 其他设置
.setOutputName("Name defined by yourself.")
.getIntent()
关于 Uri 权限¶
Uri 权限
因为在 setOutputUri
会为指定的 uri
授予权限,因此你需要在合适的时刻调用 Coontext.revokeUriPermission
移除。该操作是为了解决手机显示照片保存失败的问题。 如果使用 CropPhotoContract
,则不需要进行该操作。
// 取消 outputUri 权限
ContextHelper.getAppContext()
.revokeUriPermission(outputUri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION or Intent.FLAG_GRANT_READ_URI_PERMISSION)