Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

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

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

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

RecyclerView внутри recyclerView - Программирование Android
Добрый день. Хочу сделать список recyclerView c горизонтальной прокруткой, который отображает допустим 20 элементов(card). Т.е....

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

4
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
13.11.2015, 18:19 #2
я делал с помощью библиотеки Picasso, примерно так
Java
1
2
3
4
@Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        Picasso.with(context).load(imageUrl).into(holder.imageView);
    }
да да, одной строкой
0
sarTemd174
57 / 57 / 1
Регистрация: 03.01.2012
Сообщений: 136
13.11.2015, 18:29  [ТС] #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);
    }
0
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
13.11.2015, 18:35 #4
я не пользовалс этой библиотекой, но что если убрать эту строку?
Цитата Сообщение от sarTemd174 Посмотреть сообщение
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
0
sarTemd174
57 / 57 / 1
Регистрация: 03.01.2012
Сообщений: 136
13.11.2015, 20:17  [ТС] #5
Ничего не поменялось.
Вот допустим у меня 11 элементов. Все видимые элементы загружаются хорошо и когда я скролю в пределах 5-ти видимых элементов все нормально, они не перерисовываются. Но когда начинаю скролить в конец списка или же просто быстро скролить туда-сюда, то становится заметно как картинки начинают перерисовываться с довольно ощутимой задержкой. Как сделать так, чтобы загруженные изображения не перерисовывались?

Добавлено через 1 час 4 минуты
Проблема была в том, что я не учел проверку на image.getDrawable()!=null, поэтому изображения каждый раз перезагружались, даже если до этого уже были загружены.
Тему можно закрыть
0
13.11.2015, 20:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2015, 20:17
Привет! Вот еще темы с ответами:

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

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

Загрузка изображений из стандартной галереи в GridLayout - Программирование Android
Всем привет! Нужно достать фоточки с телефона и красиво отобразить в GridLayout, подгружая фоточки асинхронно. но то ли руки кривые, то ли...

RecyclerView - Программирование Android
Скажите что делаю не так. Цель: выводить содержимое бд заголовок, текст и т.п. Как я делал, точнее по гайдам. Тут из базы передаю...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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