You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java项目中如何转换并使用CanHub Image Cropper的Kotlin代码?

CanHub Image Cropper Java 适配方案及兼容性确认

兼容性说明

CanHub Image Cropper完全支持Java,官方文档虽以Kotlin示例为主,但核心API均提供了Java可调用的实现,仅需将Kotlin语法糖转换为标准Java写法即可。

CropImageContractOptions 实例化及调用步骤

1. 完整ActivityResultLauncher定义(补充参考)

private ActivityResultLauncher<CropImageContractOptions> cropImageLauncher;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // 初始化裁剪结果回调
    cropImageLauncher = registerForActivityResult(new CropImageContract(), result -> {
        if (result.isSuccessful()) {
            // 处理成功结果
            Uri croppedUri = result.getUriContent();
            Bitmap croppedBitmap = result.getBitmap();
            // 此处添加你的业务逻辑
        } else {
            // 处理取消或错误场景
            Exception error = result.getError();
        }
    });
}

2. CropImageContractOptions 实例化(解决卡住的核心步骤)

Java中需通过CropImageContractOptions.Builder构建实例,替代Kotlin的命名参数写法:

// 示例:从目标Uri启动裁剪
Uri targetImageUri = Uri.parse("你的图片Uri");
CropImageContractOptions cropOptions = new CropImageContractOptions.Builder(targetImageUri, null)
        .setGuidelines(CropImageView.Guidelines.ON)
        .setAspectRatio(1, 1)
        .setCropShape(CropImageView.CropShape.RECTANGLE)
        .setOutputCompressQuality(80)
        // 按需添加其他配置,如setFixAspectRatio(true)、setOutputUri(自定义输出Uri)等
        .build();

// 启动裁剪流程
cropImageLauncher.launch(cropOptions);

关键注意点

  • 若从本地文件路径启动,Builder第二个参数可传入文件Uri或按需传null
  • 所有Kotlin示例中的可选配置,均对应Builder类中的setter方法,可直接调用
  • 建议使用最新稳定版依赖,避免旧版本存在的Java适配遗留问题

内容的提问来源于stack exchange,提问作者ein storage

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 05:50:22