毕加索从媒体商店加载图像(专辑封面图片)时显示错误



我正在尝试使用毕加索使用代码在回收器视图中加载图像

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和其他方法使用传统方式加载图像,然后它工作正常。

歌曲。CoverArtAlbumPath.get(position) 包含类似"/storage/emulated/0/Android/data/com.android.providers.media/albumthumbs/1456505346363"之类的字符串

我还尝试通过更改毕加索代码中的 .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>

请帮助告诉问题所在以及我应该怎么做才能使其正常工作。

提前谢谢。

你可以试试这个:

 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/

最新更新