Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
62 / 62 / 15
Регистрация: 03.01.2012
Сообщений: 137

Асинхронная загрузка изображений в ListView (ленивый)

01.08.2015, 05:35. Показов 1316. Ответов 0

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть такая схема:

Объект User с полями:

1) id (Long)
2) username (string)
3) profile_photo_id (int)
4) profile_photo_path (String)

Поле profile_photo_path по умолчанию пустое, profile_photo_id - id фото на сервере. (Если id=0, у пользователя нет фото на сервере)

Есть функция DownloadFile(int id), которая асинхронно скачивает с сервера файл по указанному айди и возвращает ответ PhotoDownloaded в котором указывается только путь до фото в кэше.

Допустим есть пользователь Петя с полями:
1) 9
2) petya
3) 14
4)

Я выполняю DownloadFile(14) и скачиваю фото с сервера, объект Петя автоматически изменился и изменилось его поле profile_photo_path с пустого на адрес скаченного файла в кэше.

Теперь объект Петя стал таким:
1) 9
2) petya
3) 14
4) cache/fasjidfjiwas.jpg

Теперь главный вопрос:

В Listview мне нужно динамически подгрузить фотографии пользователей, но как сделать это я не понимаю.

В голове я себе всю эту схему так представляю.
Допустим:
Я беру 10 объектов типо User с сервера. У всех поле profile_photo_path изначально пустое.
Я загружаю первый объект в адаптер ListView, проверяю пустое ли поле photo_path у этого объекта, и если пустое то делаю асинхронный запрос DownloadFile с указанным айди. Затем broadcastreciever'ом слушаю когда пришло событие о том, что файл скачался, мне нужно обновить текущий объект. Вроде бы все понятно, но как я могу запомнить чье фото скачалось, если в событии PhotoDownloaded я получаю только путь самого файла?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.08.2015, 05:35
Ответы с готовыми решениями:

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

Загрузка изображений из сети в ListView
Здравствуйте. Имеется файл в JSON формате. В нем дан массив объектов, каждый объект содержит поле "name" и поле...

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.08.2015, 05:35
Помогаю со студенческими работами здесь

Асинхронная загрузка изображений по клику на ссылки
Есть страница со списком фото. Под каждой фото кнопка-ссылка "Сменить фото". Никак не могу разобраться как прикрутить вызов аплоадера по...

Загрузка заставки и ленивый загрузчик классов в свете совета от Хорстманна
Вот кусок из Core Java. Между прочим, revised and updated for Java SE 6 (8 издание). At startup, the class containing your mainmethod...

Асинхронная загрузка
Здравия! имеется index.php страница такого вида <form id="form1" name="form1" method="get" action="show.php"> ...

Асинхронная загрузка css
В сети обнаружил вот такой скрипт, который позволяет осуществлять асинхронную загрузку файла css: function b(){ var...

Асинхронная загрузка BitmapImage
Доброго времени суток! Интересует следующий вопрос: коим образом не(!) блокируя основной поток подгружать BitmapImage в Image.Source? ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru