Я использую Галерею с ImageAdapter, чтобы загрузить его с ImageViews, которые извлекают изображения из моих ресурсов.Моя проблема в том, что convertView, который передается методу getView () в моем адаптере, всегда имеет значение null.Это означает, что новый ImageView создается каждый раз, когда вызывается getView ().Это приводит к ужасному предварительному исполнению, потому что GC постоянно работает, чтобы стереть все эти созданные и более не используемые ImageView.
Это, очевидно, известная ошибка: Кэш представления галереи не работает;никогда не преобразует представления. .
Мои два предпочтительных решения: 1. обрабатывают кэш представлений в самом адаптере и следят за всей логикой, необходимой для их повторного использования должным образом.или 2. включить мою собственную копию виджета «Галерея» и попытаться исправить ее, чтобы она правильно возвращала переработанные представления.
Я начал реализацию первого варианта, но быстро понимаю, что точно не знаю, как сделатьвся логика этой операции.Я начинаю думать, что второй вариант может быть проще.
Я нашел код для виджета «Галерея» здесь: http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.1_r2/android/widget/Gallery.java
Я не до конца понимаю, но вижу, что он вызывает
child = mAdapter.getView(position, null, this);
в строке 745. Мое (снятое в темноте) догадывается, что это корень проблемы.
Кто-нибудь имеет опыт работы с этой ошибкой.Или кто-нибудь может указать мне правильное направление, чтобы выяснить, как работает ситуация с утилизатором, чтобы я мог настроить этот виджет для правильной работы?Или даже предложить какой-нибудь альтернативный вариант, который я мог бы пропустить.
РЕДАКТИРОВАТЬ: Лучшим решением, которое я когда-либо нашел, была реализация под названием EcoGallery.Единственное место, где я могу найти ссылку на него онлайн, это .Чтобы это работало, вы должны поместить каждый кусок в нужное место в вашем проекте.