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

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

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".

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

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

Используемый здесь ImageView - это View в следующем xml-коде <ImageView android:gravity="left" android:id="@+id/grid_image" android:layout_width="wrap_content" android:layout_height="wrap_content"> </ImageView>

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

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


person Abhishek Kulshrestha    schedule 12.03.2016    source источник


Ответы (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);
person rockstar    schedule 12.03.2016
comment
Я могу загрузить его из папки с возможностью рисования даже как R.drawable.Image, но проблема в том, что параметр .load () является строкой. - person Abhishek Kulshrestha; 12.03.2016
comment
ты уверен в пути. URL-адрес с http: // перед доменным именем ... пожалуйста, проверьте мои обновления, как указано выше. - person rockstar; 12.03.2016
comment
Строка /storage/emulated/0/Android/data/com.android.providers.media/albumthumbs/1456505346363 вот так - person Abhishek Kulshrestha; 12.03.2016
comment
хорошо, тогда вы можете использовать .. Picasso.with (mContext) .load (file: // + path) //.transform(new util.CircleTransform ()) // необязательный //.placeholder(R.drawable.default1 ) // необязательный .error (R.drawable.default1) // необязательный .into (holder.primaryImageView); - person rockstar; 12.03.2016
comment
Большое спасибо!!!!!!! Этот файл: // сделал это: D Спасибо. Отредактируйте его в своем ответе, чтобы я мог его принять :) - person Abhishek Kulshrestha; 12.03.2016

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

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/.

person 51j0    schedule 12.03.2016