我正在尝试使用毕加索使用代码在回收器视图中加载图像
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/1456505346363.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/1456505346363.png";
Picasso.with(context).load(new File(path)).into(holder.primaryImageView);
有关更多信息,请访问 http://square.github.io/picasso/