Android ViewFlipper с ImageViews вылетает из-за чрезмерного использования памяти - PullRequest
1 голос
/ 10 ноября 2011

У меня есть ViewFlipper, загруженный с ImageViews (около 24), которые являются скриншотами для приложения, как руководство пользователя.Пользователь должен вызвать это действие и пролистать изображения, чтобы увидеть, как работает приложение.

К сожалению, происходит сбой на телефонах и эмуляторах из-за слишком большого объема памяти при загрузке всех изображений (мой первый дизайн был протестирован на nook Color с Honeycomb) под управлением 2.2 и 2.3 (которые я должен поддерживать).).

Можете ли вы предложить альтернативный дизайн кода для ограничения объема требуемой памяти?Загрузка нескольких изображений одновременно, обнуление изображений, альтернативное сжатие или формат и т. Д.

Спасибо

Ответы [ 2 ]

2 голосов
/ 10 ноября 2011

используйте Gallery или ViewPager с PagerAdapter (новое! Включено в пакет совместимости).PagerAdapter уничтожит / создаст каждую страницу, когда это необходимо.Вы можете повторно использовать представления, используя Gallery в пользовательском адаптере.

см. http://android -developers.blogspot.com / 2011/08 / Horizontal-View-Swiping-with-Viewpager.HTML

0 голосов
/ 10 ноября 2011

Вместо того, чтобы загружать все изображения одновременно, возможно, попробуйте что-то вроде ViewSwitcher с двумя дочерними ImageViews. Сохраняйте ссылку на то, в каком месте вы находитесь, для списка снимков экрана, и каждый раз, когда вид переключается, определяют, в каком направлении он переключается (предыдущий или следующий), и изменяйте изображение следующего ImageView до переключения. Таким образом, у вас должно быть только одно или два изображения в памяти в любое время.

РЕДАКТИРОВАТЬ: идея Бинниб звучит лучше для меня. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...