Пикассо показывает ошибку при загрузке изображений (обложка альбома) из 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/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/