2015-01-26 2 views
0

Я пишу приложение для Android, которое будет иметь фид изображения, что-то вроде, например, приложения instagram. Мой вопрос в том, как я могу кэшировать эти изображения, поэтому я не получаю исключение из памяти?Как кешировать изображения?

Я прочитал несколько руководств, но все они кэшируют растровые изображения в LruCache. Возможно, я ошибаюсь, но, как я думаю, растровое изображение в ImageView и кэшированном режиме использует тот же объем памяти.

Я думаю о хранении сжатых изображений (например, JPEG) в кеше в памяти (и, конечно же, на диске) и показывая его только тогда, когда он отображается на экране, но тогда процессор будет есть когда он будет постоянно очищать ImageView, когда он невидим и не распаковывает изображение, и показывая его, когда он находится в окне просмотра. И я не уверен, что прокрутка будет безрезультатной, даже если я сделаю это по новой теме.

Альтернативой является то же, что и описанное выше, но я не удаляю растровое изображение из изображения сразу, только когда есть много изображений, и у меня будет нехватка памяти.

Как вы думаете?

+0

Возможный дубликат [кэширования изображений для Android] (http://stackoverflow.com/questions/1945201/android-image-caching) –

ответ

1

Вот пример шаг за шагом о том, как кэшировать изображения в памяти и диска:

http://androidexample.com/Download_Images_From_Web_And_Lazy_Load_In_ListView_-_Android_Example/index.php?view=article_discription&aid=112&aaid=134

Но вы также можете использовать LIBS, которые уже работают довольно хорошо, как:

http://square.github.io/picasso/

Первое звено также содержит объяснение о том, как вы должны относиться растровые изображения, чтобы избежать outOfMemory.

+0

, но оба они являются кешированием растровых изображений с обратным вызовом кэша файлов. нет ли другого метода? – vsakos

+0

Что случилось с этим? – vinitius

+0

Загрузка с диска происходит медленно, я хочу, чтобы все (или почти все) в памяти – vsakos

Смежные вопросы