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

Загрузка изображений в RecyclerView

13.11.2015, 17:58. Показов 7163. Ответов 5

Студворк — интернет-сервис помощи студентам
Здравствуйте, каким образом можно динамически загружать картинки в RecyclerView из интернета, чтобы все это дело не тормозило и было более менее плавно?
Допустим у меня есть ячейки с названием автомобилей, мне нужно взять готовые изображения на сервере и вставить их в RecyclerView.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.11.2015, 17:58
Ответы с готовыми решениями:

RecyclerView.Adapter загрузка изображения
При прокрутке RecycleView в ImageView загружается необходимая фотография.. Но при прокрутке почему то начинаются не состыковки.. (как...

Advanced RecyclerView и Expandable RecyclerView
Сделал expandable recycler view на основе advancedRecyclerView сборочки, но не важно это думаю, наследуется от обычного RecyclerView. ...

Загрузка изображений
Здравствуйте. Есть база изображений, например на web сервере, хостинге или соц сети. Задумка проста. Ни каких меню и кнопок, только...

5
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
13.11.2015, 18:19
я делал с помощью библиотеки Picasso, примерно так
Java
1
2
3
4
@Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        Picasso.with(context).load(imageUrl).into(holder.imageView);
    }
да да, одной строкой
1
62 / 62 / 15
Регистрация: 03.01.2012
Сообщений: 137
13.11.2015, 18:29  [ТС]
Я сделал примерно тоже самое но с помощью Glide

Java
1
2
3
4
5
6
Glide.with(context)
                .load(carURI)
                .diskCacheStrategy(DiskCacheStrategy.SOURCE)
                .crossFade()
                .animate(android.R.anim.fade_in)
                .into(carImageView);
И вызываю это все в onBindViewHolder но когда начинаю скролить, то изображения начинают перезагружаться каждый раз заного. Не знаю как объяснить, но получается что событие onBindViewHolder срабатывается слишком много раз (даже тогда, когда изображение уже загружено)

Java
1
2
3
4
5
6
7
8
9
10
11
12
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) {
            if (getItemViewType(position) == Car) {
                ((CarViewHolder) viewHolder).update(Cars.getCars().get(position));
            }
            else if (viewHolder instanceof EmptyStateViewHolder &&
                    Library.hasRWPermission(getActivity())) {
                EmptyStateViewHolder emptyHolder = ((EmptyStateViewHolder) viewHolder);
                emptyHolder.setReason(R.string.empty);
                emptyHolder.setDetail(R.string.empty_detail);
                emptyHolder.setButton1(R.string.action_try_again);
            }
        }
Java
1
2
3
4
5
6
7
8
9
10
public void update(Car c){
 
            carName.setText(c.CarName);
            Glide.with(context)
                .load(carURI)
                .diskCacheStrategy(DiskCacheStrategy.SOURCE)
                .crossFade()
                .animate(android.R.anim.fade_in)
                .into(carImageView);
    }
1
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
13.11.2015, 18:35
я не пользовалс этой библиотекой, но что если убрать эту строку?
Цитата Сообщение от sarTemd174 Посмотреть сообщение
.diskCacheStrategy(DiskCacheStrategy.SOU RCE)
0
62 / 62 / 15
Регистрация: 03.01.2012
Сообщений: 137
13.11.2015, 20:17  [ТС]
Ничего не поменялось.
Вот допустим у меня 11 элементов. Все видимые элементы загружаются хорошо и когда я скролю в пределах 5-ти видимых элементов все нормально, они не перерисовываются. Но когда начинаю скролить в конец списка или же просто быстро скролить туда-сюда, то становится заметно как картинки начинают перерисовываться с довольно ощутимой задержкой. Как сделать так, чтобы загруженные изображения не перерисовывались?

Добавлено через 1 час 4 минуты
Проблема была в том, что я не учел проверку на image.getDrawable()!=null, поэтому изображения каждый раз перезагружались, даже если до этого уже были загружены.
Тему можно закрыть
0
0 / 0 / 0
Регистрация: 12.07.2015
Сообщений: 2
08.06.2021, 11:45
Доброго дня! Не подскажите, как конкретно выполнить проверку на image.getDrawable()!=null ? Не совсем понимаю, если image.drawable ==null , то должна происходить загрузка Picasso, а если image.drawable !=null то что должно происходить? Извиняюсь за вероятно глупый вопрос))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.06.2021, 11:45
Помогаю со студенческими работами здесь

Загрузка изображений из галлереи
Как реализовать загрузку изображений из галереи при нажатии на кнопку? (Андроид программирование)

Загрузка изображений на сервер
Здравствуйте. Пытаюсь загрузить изображение на свой сервер в интернете. Нашел вот такой пример: import java.io.DataInputStream; import...

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

Загрузка изображений с RSS ленты
Есть Reader RSS ленты, который преобразует это все в ListView. Как мне сделать так, чтобы вдобавок еще грузились картинки с этой же ленты?...

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru