Я знаю, что существует много дискуссий о растровых изображениях Android из памяти, но мне было интересно, может ли кто-нибудь объяснить это мне ..
В настоящее время в моем приложении есть действие, в котором перечислены миниатюры изображений (низкого качества), и когда я нажимаю на изображение, оно открывает новое действие, чтобы просмотреть изображение в полноэкранном режиме.Во втором уроке у меня есть:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 1;
bm = BitmapFactory.decodeFile(myImagePath, options);
Затем я помещаю это в ImageView, чтобы отобразить его.Это работает и отображает мое изображение в полном качестве.Однако, если я щелкаю назад, а затем нажимаю, чтобы увидеть это изображение снова (и повторяю это 6 раз) .. в 6-й раз, открывая изображение (занятие2), я получаю сообщение об ошибке памяти: Heap size = 6919KB, Allocated = 3125KB, BitmapРазмер = 25848 КБ!
Как велик размер растрового изображения?Я предположил, что это может создавать новые экземпляры все время, поэтому я решил добавить метод во второе занятие для нажатия клавиши «назад» ... и в этом методе я установил свой bitmap = null, а также сделал System.gc ()очистить сборщик мусора, НО это не решило проблему.Я по-прежнему получаю сообщение об ошибке нехватки памяти при шестом щелчке по миниатюре для просмотра изображения в полном разрешении
Кто-нибудь может объяснить, почему?Спасибо