У меня есть приложение, которое отображает довольно много изображений для пользователя, и мы видели много сообщений об ошибках за исключением OutOfMemoryError
.
В настоящее время мы делаем следующее:
// Check if image is a landscape image
if (bmp.getWidth() > bmp.getHeight()) {
// Rotate it to show as a landscape
Matrix m = image.getImageMatrix();
m.postRotate(90);
bmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), m, true);
}
image.setImageBitmap(bmp);
Очевидная проблема с этим состоит в том, что мы должны воссоздать растровое изображение из изображения в памяти и повернуть матрицу, это довольно дорого для памяти.
Мой вопрос прост:
Есть ли лучший способ поворачивать изображения, не вызывая OutOfMemoryError
?