Растровые изображения и масштабированные растровые изображения

Я загружаю несколько растровых изображений (приблизительно 40 различных размеров от полноэкранных изображений до отдельных кадров спрайтов), используя:

Bitmap graphic = BitmapFactory.decodeResource(res, R.drawable.mygraphics);

И затем я масштабирую их (чтобы они выглядели одинаково на любом устройстве относительно экрана), используя это:

Bitmap scaledGraphic = Bitmap.createScaledBitmap(mygraphics,  screen.width()/2, screen.height()/2, true);

Приведенный выше пример только для аргументации масштабирования изображения вверх / вниз до четверти размера экрана.

Затем я ссылаюсь на масштабированное изображение в моем методе onDraw():

canvas.drawBitmap(scaledGraphic, X, Y, null);

Все это работает нормально и хорошо смотрится на экранах разных размеров.

Мой вопрос, насколько я понимаю, createScaledBitmap создал еще один растровый образ в памяти из исходного (а не просто масштабировал исходный). Если это так, то после создания масштабированного растрового изображения мне действительно больше не нужно исходное, так есть ли способ избавиться от него из памяти?

Я должен был бы вызвать повторную переработку на этом? Я просто пытаюсь оптимизировать свой код и у меня много проблем с заиканием анимации и т. Д. GC вызывается несколько раз (не много), и я действительно понятия не имею, почему это происходит, но думал, что это будет хорошо Практика, чтобы разобраться в этом в любом случае.

0 ответов

Другие вопросы по тегам