Как мы даем изображения-заполнители ImageCardViews во время загрузки плаката?

У меня есть класс-оболочка, который содержит ImageCardView и загружает в него изображение, извлеченное из Интернета. Перед сетевым вызовом у меня есть

        imageCardView.getMainImageView().setImageResource(R.drawable.icon_movie_placeholder);

По какой-то причине изображение никогда не появляется, если сразу после этого происходит сетевой вызов, хотя для появления отдельного плаката может потребоваться 0,5-1,5 секунды. Но если я закомментирую сетевой вызов и назначение, изображение появится. Как сделать так, чтобы заполнитель был виден во время извлечения плаката? Для этого я использую Picasso, очищает ли Picasso изображение перед его загрузкой?

1 ответ

Я думаю, что Пикассо действительно очищает изображение, когда вы звоните load(url).into(imageView) метод, чтобы избежать отображения неправильных изображений в listView / recyclerView.

То, что вы могли бы использовать, это собственный способ Picasso установить изображение заполнителя, который работает следующим образом

Picasso.with(context)
    .load(imageUrl)
    .placeholder(R.drawable.icon_movie_placeholder)
    .into(imageView)

Таким образом, Пикассо покажет ваш icon_movie_placeholder рисовать до тех пор, пока не закончится сетевой запрос, и если вам нужно предоставить изображение-заполнитель, вы можете использовать error(resourceId) метод просто так.

Вы можете найти больше информации об этом на официальной странице Пикассо на Github (особенно в разделе " Функции ": http://square.github.io/picasso/

Другие вопросы по тегам