Я получаю исключение Out Of Memory, используя Picasso при загрузке больших изображений ( > 1.5MB) из Android Gallery (с использованием startActivityForResult).
Я использую настраиваемый объект Target, потому что мне нужно предварительно обработать битмап, когда он будет готов, а также я использую настраиваемый объект Transform для масштабирования растрового изображения.
Проблема заключается в том, что метод public Bitmap transform(Bitmap source)
на моем объекте Transform никогда не вызывается из-за исключения из памяти, поэтому я не получаю возможности для повторной настройки изображения.
Но, если я использую метод .resize(maxWidth, maxHeight)
, он загружает изображение OK. Я предположил, что объект Transform тоже был для этой цели, но кажется, что метод преобразования вызывается после изменения размера, и, если я не вызываю изменение размера, тогда он закончится с нехваткой памяти.
Проблема в том, что при изменении размера мне нужно указать ширину и высоту, но мне нужно масштабировать и сохранять соотношение сторон.
Учтите, что изображения будут выбраны из пользовательской галереи, поэтому они могут быть больше или меньше, портретные, квадратные или ландшафтные и т.д., поэтому мне нужен собственный объект Transformation для выполнения логики, требующей моего приложения.