Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
sarTemd174
57 / 57 / 1
Регистрация: 03.01.2012
Сообщений: 136
#1

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

13.11.2015, 17:58. Просмотров 970. Ответов 4

Здравствуйте, каким образом можно динамически загружать картинки в RecyclerView из интернета, чтобы все это дело не тормозило и было более менее плавно?
Допустим у меня есть ячейки с названием автомобилей, мне нужно взять готовые изображения на сервере и вставить их в RecyclerView.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2015, 17:58     Загрузка изображений в RecyclerView
Посмотрите здесь:

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

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

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

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

Загрузка изображений в TextView из HTML - Программирование Android
Здравствуйте ) Достаточно частый вопрос. Но все усложняется тем, что это все находится в TextView. Имеется код: arrayList...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
13.11.2015, 18:19     Загрузка изображений в RecyclerView #2
я делал с помощью библиотеки Picasso, примерно так
Java
1
2
3
4
@Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        Picasso.with(context).load(imageUrl).into(holder.imageView);
    }
да да, одной строкой
sarTemd174
57 / 57 / 1
Регистрация: 03.01.2012
Сообщений: 136
13.11.2015, 18:29  [ТС]     Загрузка изображений в RecyclerView #3
Я сделал примерно тоже самое но с помощью 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);
    }
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
13.11.2015, 18:35     Загрузка изображений в RecyclerView #4
я не пользовалс этой библиотекой, но что если убрать эту строку?
Цитата Сообщение от sarTemd174 Посмотреть сообщение
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2015, 20:17     Загрузка изображений в RecyclerView
Еще ссылки по теме:

Recyclerview-stickyheaders - Программирование Android
Подскажите кто пожалуйста как сделать recyclerview-stickyheaders как в ссылке только с cardView. ...

Android fragment + recyclerView - Программирование Android
Всем привет, помогите написать простой пример такой программы: Есть 1 активность (при запуске на ней отображен фрагмент1, в котором...

Принцип работы RecyclerView - Программирование Android
Можете объяснить принципп работы RecyclerView во время скроллинга? Как он заполняется элементами? Сколько элементов находится в каждый...

Обработка кликов в RecyclerView - Программирование Android
Доброго времени суток господа. Сделал обработку кликов по вот этому примеру ...

Recyclerview click fixed - Программирование Android
Добрый день. у меня в Recyclerview выводится список контактов, как сделать чтобы к при клике на него она фиксировалась грубо...

RecyclerView сохранения в JSON - Программирование Android
У меня есть recyclerview (в фрагменте) и фрагмент с детальной информацией к одному из элементов. Все бы хорошо, но когда мои данные...


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

Или воспользуйтесь поиском по форуму:
sarTemd174
57 / 57 / 1
Регистрация: 03.01.2012
Сообщений: 136
13.11.2015, 20:17  [ТС]     Загрузка изображений в RecyclerView #5
Ничего не поменялось.
Вот допустим у меня 11 элементов. Все видимые элементы загружаются хорошо и когда я скролю в пределах 5-ти видимых элементов все нормально, они не перерисовываются. Но когда начинаю скролить в конец списка или же просто быстро скролить туда-сюда, то становится заметно как картинки начинают перерисовываться с довольно ощутимой задержкой. Как сделать так, чтобы загруженные изображения не перерисовывались?

Добавлено через 1 час 4 минуты
Проблема была в том, что я не учел проверку на image.getDrawable()!=null, поэтому изображения каждый раз перезагружались, даже если до этого уже были загружены.
Тему можно закрыть
Yandex
Объявления
13.11.2015, 20:17     Загрузка изображений в RecyclerView
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru