У меня такая проблема как в эмуляторе, так и на телефонах Android с экранами высокого разрешения:
09-24 21:59:01.772: ERROR/AndroidRuntime(341): FATAL EXCEPTION: Thread-8
09-24 21:59:01.772: ERROR/AndroidRuntime(341): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
Причина в том, что я переворачиваю растровое изображение, используя матрицу (лицом налево, лицом вправо)
Я делаю это при запуске и сохраняю полученное растровое изображение, чтобы не создавать его заново без необходимости.
Но на телефонах и эмуляторах AVD, которые имеют большие дисплеи, чем мой скромный телефон, выдает ошибку.
Вот метод:
private Bitmap Flip(Bitmap asset) {
Matrix mat = new Matrix();
mat.postScale(-1F, 1F);
int width = asset.getWidth();
int height = asset.getHeight();
return Bitmap.createBitmap(asset, 0, 0, width, height, mat, true);
}
Кажется, что такое базовое преобразование, почему оно не сможет перевернуть растровое изображение?
это всего 2кб.
Может кто-нибудь предложить альтернативный подход к получению перевернутой версии растрового изображения?