gpt4 book ai didi

android - 为什么 Android crop intent 不返回 ActivityResult?

转载 作者:太空宇宙 更新时间:2023-11-03 11:32:19 24 4
gpt4 key购买 nike

我正在尝试从媒体库中裁剪图像。我可以访问图像,启动默认裁剪工具,甚至可以保存裁剪后的图像结果。

但是,如果裁剪成功,我使用的 Intent 将不会返回任何结果。

我的主要方法:

// Crop photo intent.
Intent intent = new Intent("com.android.camera.action.CROP", null);
intent.setData(uri);
intent.putExtra("outputX", outputX);
intent.putExtra("outputY", outputY);
intent.putExtra("aspectX", aspectX);
intent.putExtra("aspectY", aspectY);
intent.putExtra("scale", scale);
intent.putExtra("return-data", true);
intent.putExtra(MediaStore.EXTRA_OUTPUT, createTempCroppedImageFile());
intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());

// Publish intent to crop picture.
activity.startActivityForResult(intent, activity.CROP_PHOTO_REQUEST_CODE);

– OnActivityResult() 方法–

// Photo crop activity.
if (requestCode == CROP_PHOTO_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
Log.d(TAG, "user cropped a photo");
signupScreen.setImage(new PhotoTool(this).getTempCroppedImageFileLocation());
} else
Log.d(TAG, "user cancelled photo crop");
}

如果我取消剪裁 Activity ,我会成功收到“用户取消照片剪裁”消息。但是,如果我裁剪图像,新裁剪图像将出现在目标目录中,但永远不会调用 OnActivityResult() 函数。给了什么?

查看 LogCat,我发现每次保存裁剪后的图像时,“JavaBinder”都会提示“Binder Transaction 失败”。我知道这与内存有某种关系,但裁剪后的文件大小只有 24KB。

最佳答案

找到这个issue的问题。不幸的是,这是一个 Android 限制。

参见 Android cropper cannot go beyond 256?

我已将裁剪图像的输出设置为 400x400。不幸的是,Android 的默认裁剪器只能处理 256x256。这非常令人沮丧,尤其是当没有关于限制的文档时。

关于android - 为什么 Android crop intent 不返回 ActivityResult?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9345960/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com