Пикассо показывает ошибку при загрузке изображений (обложка альбома) из MediaStore

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

Picasso.with(context).load(songs.CoverArtAlbumPath.get(position)).into(holder.primaryImageView, new Callback() {
            @Override
            public void onSuccess() {
                Log.v("abc","suc");
            }

            @Override
            public void onError() {
                Log.v("abc","err");
            }
        });

И это всегда заканчивается в методе onError(). Я попытался загрузить изображения традиционным способом, используя BitmapFactory.decodeFile и другие методы, и тогда он работал нормально.

Композиции songs.CoverArtAlbumPath.get(position) содержат строки, например "/storage/emulated/0/Android/data/com.android.providers.media/albumthumbs/1456505346363"

Я также попытался загрузить изображение из папки drawable, просто изменив параметры.load() в коде Пикассо, и оно загрузилось. Это означает отсутствие ошибок в контексте и ImageView, который я использую здесь.

Строка, которую я передаю в методе.load(), является строкой пути для обложки альбома из MediaStore.

Используемое здесь ImageView - это представление в следующем XML-коде. <ImageView android:gravity="left" android:id="@+id/grid_image" android:layout_width="wrap_content" android:layout_height="wrap_content"> </ImageView>

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

Заранее спасибо.

2 ответа

Решение

Вы можете попробовать это:

 for showing image with storage path:

      String path ="/storage/emulated/0/Android/data/com.android.providers.media/albumthumbs/145650‌​5346363.png";

      Picasso.with(mContext).load("file://" + path)
      //.transform(new util.CircleTransform())// optional
      //.placeholder(R.drawable.default1) // optional
      .error(R.drawable.default1)   // optional
      .into(holder.primaryImageView);

 for showing image from url:

    String url ="http://www.domain_name.com/image.png";
    Picasso.with(mContext)
            .load(url)
            //.placeholder(R.drawable.default1) // optional
            .error(R.drawable.default1)   // optional
            //.transform(new CircleTransform())// optional
            .into(holder.primaryImageView);

Вы делаете это неправильно, попробуйте это

String path ="/storage/emulated/0/Android/data/com.android.providers.media/albumthumbs/145650‌​5346363.png";

Picasso.with(context).load(new File(path)).into(holder.primaryImageView);

Для получения дополнительной информации перейдите на http://square.github.io/picasso/

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