Я очень знаком с концепцией ООМ. Я сталкивался с таким количеством вопросов, которые задавали здесь, и я знаю, что это может звучать как повторный вопрос об ООМ, но сейчас у меня другая проблема.
У меня есть сотни и сотни изображений, которые я должен показать в одном ListView
в одном Activity
.
Я использовал концепцию ленивой загрузки Федора.
Код работает хорошо, когда изображения маленькие (что-то вроде 50-100 изображений), но если я получаю от 200 до 300 изображений, как только пользователь делает прокрутку ListView
(со временем), я получаю исключение нехватки памяти.
Я использую концепцию эффективного адаптера, как показано здесь на сайте разработчика, и я считаю, что это лучший метод использования нестандартного адаптера.
Все предположения, которые я видел до сих пор, основаны на уменьшении размера растрового изображения путем его масштабирования или другими способами. Я уже попробовал эти методы. Но все же ООМ происходит в какой-то момент времени.
Снижение качества изображения не похоже на способ обработки этого исключения, поскольку, похоже, оно влияет на взаимодействие с пользователем, а также не работает для большого количества растровых изображений.
Мои вопросы здесь:
- Как отображать
n
изображения в одном ListView
, не обращаясь к OOM?
- Каковы наилучшие стратегии в этом сценарии?
- Можно ли показать около 500 изображений в одном
ListView
?
Любая помощь очень ценится.