Я пытаюсь разработать приложение галереи изображений. Ошибка отображается на указанной странице. Когда мои загрузки страницы У меня есть изображение Вид внутри ViewPager
и горизонтальная полоса в нижней части, где я использовал recycler view.On load
Ошибка OutOfMemory при продолжении прокрутки Viewpager, который использовал Glide для загрузки растровых изображений в него
Первые загрузки изображения на ImageView в ViewPager и соответствующее изображение миниатюр подсвечиваются на горизонтальной полосе. При нажатии на миниатюру внизу горизонтальной полосы соответствующее изображение загружается в представление изображения Viewpager. Все мои функции работают по своему желанию. Но когда я постоянно прокручиваю viewpager даже после того, как я дал большую кучу для моего приложения, приложение перестает отвечать на запросы/сбои. На графике памяти Log and Android Monitors я мог четко понять, что это ошибка OOM. Теперь наступает ключевой фактор, который я использовал Glide
для загрузки изображений в представление изображения на viewpager. Для того, чтобы убедиться, что Glide освобождает растровое он использует я использовал следующие методы:
Glide
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
Я также называется,
Glide.get(context).clearMemory();
AsyncTask.execute(new Runnable() {
@Override
public void run() {
//TODO your background code
Glide.get(context).clearDiskCache();
}
});
в методе destroyItem зрения пейджера.
Кроме того, я использовал следующий код глиссады для загрузки растрового изображения в поле зрения изображения:
Glide
.into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
mediaDetails.get(curPos).getFullImageView().setImageBitmap(resource);
}
}
Мне нужен растровый ресурс, так как я осуществившие масштабировании и панорамирование функции на представлении изображения. Каким будет самый эффективный способ освободить растровое изображение, созданное при просмотре представления пейджера представления. Или есть ли другой способ справиться с этой проблемой? Ваша помощь будет наиболее ценной.
Вы устанавливаете предел смещения на ваш плейер просмотра? – savepopulation
@saveпопуляция его установленного значения по умолчанию, то есть 1. Я попытался изменить лимит, но затем вернул обратно. Решение masoud vali дало мне некоторую отсрочку. Даже решение Ramz аналогично, за исключением того, что класс должен быть добавлен. –
Да, их решения должны работать. Я просто задался вопросом, устанавливаете ли вы ограничение смещения на большое число, которое может вызвать эту ситуацию. – savepopulation