Библиотека Пикассо не загружает изображения из URI

Я использую Picasso в адаптере списка для асинхронной загрузки изображений из URI

Picasso.with(viewHolder.albumArt.getContext())
.load(songObject.albumArtURI)
.placeholder(R.drawable.grayalbumart)
.into(viewHolder.albumArt);

Проблема в том, что изображения не загружаются. Я вижу только изображения-заполнители.

примечание: я не загружаю URL-адреса. Я загружаю URI.


person the_prole    schedule 09.11.2015    source источник
comment
stackoverflow.com / questions / 21158425 / проверьте эту ссылку   -  person saeed    schedule 09.11.2015
comment
какую версию Пикассо вы используете?   -  person Blackbelt    schedule 09.11.2015
comment
укажите строковый URL-адрес, а не URI изображения.   -  person Pravinsingh Waghela    schedule 09.11.2015
comment
@the_prole сначала проверьте, можете ли вы получить URL-адрес изображения из songObject.albumArtURI, а также проверить, что вы можете передать? например File, String URL и т. д.   -  person Hardik Parmar    schedule 10.11.2015


Ответы (4)


Используйте обратные вызовы, чтобы узнать, правильно ли загружено растровое изображение из вашего изображения в ваше изображение.

вы можете использовать обратный вызов Picasso, как показано ниже

Picasso.with(getContext())
    .load(url)
    .into(imageView, new com.squareup.picasso.Callback() {
                    @Override
                    public void onSuccess() {
                          // Log something here eg "true"
                    }

                    @Override
                    public void onError() {
                         // Log something here eg "false"
                    }
                });

Теперь, если ваше растровое изображение загружено правильно, будет зарегистрировано значение true или false. Если это правда, не беспокойтесь, это ложь, тогда проверьте, правильный ли ваш URL-адрес.

Примечание. Убедитесь, что в URL-адресе, который вы получаете с сервера, нет пробелов в имени файла, иначе он не загрузится, я сам сталкивался с этой проблемой много раз, поэтому просто проверьте имена, которые вы получаете.

person karan    schedule 09.11.2015

ЕСЛИ это из доступной папки, тогда:

uri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://"+context.getPackageName()+"/drawable/" + drawableName);

Picasso.with(viewHolder.albumArt.getContext())
.load(uri)
.placeholder(R.drawable.grayalbumart)
.into(viewHolder.albumArt);
person manishm    schedule 09.11.2015
comment
Не используя чертежи. Я использую URI. В любом случае, я ответил на свой вопрос. - person the_prole; 09.11.2015

Попробуй это,

Я добавил этот код в свой адаптер

        String url = alist.get(position).getProfileImage();

        holder.ivPic.setScaleType(ImageView.ScaleType.CENTER_CROP);
        Picasso.with(context).load(url).into(holder.ivPic);
person Parth Bhayani    schedule 09.11.2015
comment
что, если url равен нулю? - person Erum; 01.03.2019
comment
он будет отображать изображение display_pic в вашем просмотре изображений. - person Parth Bhayani; 01.03.2019

Ответил на свой вопрос

if(songObject.albumArtURI != null){

        File f = new File(songObject.albumArtURI);

        Picasso.with(viewHolder.albumArt.getContext())
                .load(f)
                .placeholder(R.drawable.grayalbumart)
                .into(viewHolder.albumArt);
    } else {

        Picasso.with(viewHolder.albumArt.getContext())
                .load(songObject.albumArtURI)
                .placeholder(R.drawable.grayalbumart)
                .into(viewHolder.albumArt);
    }
person the_prole    schedule 09.11.2015