【问题标题】:Fail to crop for large images无法裁剪大图像
【发布时间】:2011-05-29 20:31:33
【问题描述】:

我的应用程序需要打开图库并选择要裁剪的图像。我将目标尺寸设置为一个值(87%*screenWide)。现在,问题出现了。在大屏幕设备中,图库无法返回裁剪后的图像,并且日志显示“!!! FAILED BINDER TRANSACTION !!!”。在大多数设备中都可以。

任何人都可以帮助我吗?谢谢!

我使用 Intent.ACTION_GET_CONTENT 进行裁剪,并设置 outputX、outputY 等。裁剪图像是常规操作。

【问题讨论】:

  • 你能检查一下 logcat 并说出确切的堆栈跟踪吗?我有一种预感,由于 android 对大位图的问题,您会在途中出现内存不足错误。

标签: android image crop


【解决方案1】:

尝试如下发送意图:

mSavedUri = Uri.fromFile(new File("/sdcard/cropped.jpg"));

mImageSelectIntent = new Intent(Intent.ACTION_GET_CONTENT, null);
mImageSelectIntent.setType("image/*");
mImageSelectIntent.putExtra("crop", "true");
mImageSelectIntent.putExtra("aspectX", 4);
mImageSelectIntent.putExtra("aspectY", 3);
mImageSelectIntent.putExtra("outputX", mImageWidth);
mImageSelectIntent.putExtra("outputY", mImageHeight);
mImageSelectIntent.putExtra("output", mSavedUri);

裁剪后的图像将保存为裁剪后的 JPG,不会通过“数据”返回给您。

【讨论】:

【解决方案2】:

我遇到了类似的问题。如果您使用的是 Android 的默认裁剪工具,它的最大裁剪尺寸限制为 256x256。将裁剪的大小设置为小于或等于该大小,您会没事的。

intent.putExtra("outputX", 256);
intent.putExtra("outputY", 256);

【讨论】:

    【解决方案3】:

    重新壁纸问题,尝试显式设置:

    your_intent.putExtra("setWallpaper", false);
    

    【讨论】:

    • 非常感谢您的回复。其实并没有生效,因为我已经设置好了。一些用户仍在报告此问题。我确信他们使用的是最新版本。我不知道怎么解决,只能抱怨世界上有很多机器人。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 2012-05-19
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    相关资源
    最近更新 更多