ImageView: автоматически перерабатывать битмап, если ImageView не виден (внутри ScrollView)

Итак, я уже некоторое время смотрю на исходник ImageView, но пока не придумал хук для этого.

Проблема: есть, допустим, 30 изображений 400x800 внутри ScrollView (количество изображений переменное). Так как они точно помещаются на экране, они будут занимать 1.3 MB оперативной памяти каждое.

Что я хочу: иметь возможность загружать/выгружать растровые изображения для ImageViews, которые в данный момент видны внутри ScrollView. Если пользователь прокручивает страницу и растровое изображение больше не видно (в пределах порогового расстояния), растровое изображение должно быть переработано, чтобы память могла быть использована другими растровыми изображениями в том же ScrollView. Я делаю даунсэмплинг и все такое, так что не беспокойтесь. Бонусные очки, если вы сделаете это, расширяя только ImageView (я бы хотел не связываться с ScrollView, если это возможно).

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

Примечания: Я не могу сделать это с ListView по другим причинам, связанным с удобством использования.

8
задан dmon 1 December 2011 в 23:41
поделиться