Я загружаю 100 изображений из папки активов в объект массива. Картинки довольно маленькие (png ~ 20k каждая), и я использую этот код, чтобы предотвратить утечку памяти и оптимизировать производительность:
в цикле:
// create resized bitmap from asset resource
InputStream istr = assetManager.open(pics[i]);
Bitmap b = BitmapFactory.decodeStream(istr);
b = Bitmap.createScaledBitmap(b, 240, 240, true);
где pics [i] - список имен файлов, который находится в моей папке активов.
Код работает для меня, но я все еще время от времени получаю ошибки от пользователей (я вижу это на ошибках консоли разработчика):
java.lang.OutOfMemoryError: bitmap size exceeds VM budget
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:468)
at android.graphics.Bitmap.createBitmap(Bitmap.java:435)
at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:340)
Что я могу сделать, чтобы улучшить это? или это мир Android, мы никогда не сможем создать идеальное приложение?