Не удается обрезать для больших изображений - PullRequest
4 голосов
/ 23 декабря 2010

Мое приложение должно открыть галерею и выбрать изображение для обрезки.Я установил целевой размер как значение (87% * screenWide).Теперь проблемы возникают.В устройствах с большим экраном галерея не смогла вернуть обрезанное изображение, и в журнале было указано «!!! СБОЙ СДЕЛКИ БИНДЕРА !!!».В большинстве устройств это нормально.

Может ли кто-нибудь помочь мне в этом?Спасибо!

Я использую Intent.ACTION_GET_CONTENT для обрезки и устанавливаю outputX, outputY и т. Д. Это обычная процедура для обрезки изображений.

Ответы [ 3 ]

7 голосов
/ 19 февраля 2012

Я столкнулся с подобной проблемой.Если вы используете инструмент обрезки по умолчанию для Android, он имеет ограничение максимального размера кадрирования 256x256.Установите размер вашего урожая на меньший или равный этому, и все будет в порядке.

intent.putExtra("outputX", 256);
intent.putExtra("outputY", 256);
6 голосов
/ 20 января 2011

Попробуйте отправить намерение, как показано ниже:

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 и не будет возвращено вам через «данные».

1 голос
/ 16 марта 2011

По поводу проблемы с обоями, попробуйте установить явно:

your_intent.putExtra("setWallpaper", false);
...