Страница 1 из 1
Много imageview и outofmemory. Как пофиксить?
Добавлено: 22 май 2015, 13:02
Sasha2dx
Пытаюсь написать что то типа энциклопедии на узконаправленную тематику. В её статьях наибольшую информационную ценность несут картинки, и их много...
Попробовал создать активити в нём: linearlayout c scrollview в котором лежат много ImageView, когда картинок добавляю больше 8 (возможно больше 3х мб) - приложение вылетает из за нехватки памяти.
Как можно попроще справится с этой ситуацией?
Re: Много imageview и outofmemory. Как пофиксить?
Добавлено: 22 май 2015, 13:07
Foenix
Без кода ничего не жди
Re: Много imageview и outofmemory. Как пофиксить?
Добавлено: 22 май 2015, 13:21
Sasha2dx
Foenix писал(а):Без кода ничего не жди
В коде ничего нет, всё статично, там только лейаут присваевается к активити.
В коде лейаута примерно такое:
Код: Выделить всё
<linearlayout>
<scrollview>
<linearlayout>
<imageview1>
<imageview2>
...
<imageview10>
</linearlayout>
</scrollview>
</linearlayout>
На экране в один момент умещается не более 4 изображений (~800кб) позже там ещё будут текстовые коментарии, так что это число возможно станет ещё меньше.
Re: Много imageview и outofmemory. Как пофиксить?
Добавлено: 22 май 2015, 14:07
altwin
Re: Много imageview и outofmemory. Как пофиксить?
Добавлено: 26 май 2015, 22:52
Sasha2dx
Дайте совет более подробный, надо простой статичный длинный экран на котором можно проскроллить 60-80 картинок и текстовые коментарии... Я так понял придётся сделать кастомный imageView, есть может у кого то статья с примером? Или это всё можно реализовать как то проще?
...
Я ещё подумал сделать отдельный html файл с контентом, картинками и текстом и всунуть потом в вебвью, но нормальная ли подобная практика?

Re: Много imageview и outofmemory. Как пофиксить?
Добавлено: 27 май 2015, 00:10
rezak90
1) Ошибка №1 используется ScrollView, а нужно ListView (обьяснения думаю не надо);
2) Загрузку картинок делать загрузчиком, их на сегодняшний день куча: Picasso, Glide, etc
Re: Много imageview и outofmemory. Как пофиксить?
Добавлено: 27 май 2015, 22:31
Sasha2dx
rezak90 писал(а):1) Ошибка №1 используется ScrollView, а нужно ListView (обьяснения думаю не надо);
Переспрошу на всякий случай: это надо для того что бы определять какие элементы вне видимой части экрана и удалять их из памяти?
Re: Много imageview и outofmemory. Как пофиксить?
Добавлено: 28 май 2015, 11:09
rezak90
Sasha2dx писал(а):rezak90 писал(а):1) Ошибка №1 используется ScrollView, а нужно ListView (обьяснения думаю не надо);
Переспрошу на всякий случай: это надо для того что бы определять какие элементы вне видимой части экрана и удалять их из памяти?
При использовании ScrollView все элементы грузятся в память и чем их больше тем больше сьедается памяти. А с ListView загружаются в память только те элементы что видны на экране, и дальше они переиспользуются при скролинге.