来自MediaStore(和Picasso)的Android专辑艺术



尝试在MediaStore中检索每个相册的相册艺术的路径。我正在像这样检索我的光标:

String[] projection = new String[] {MediaStore.Audio.Albums._ID,
                                    MediaStore.Audio.Albums.ALBUM_ART,
                                    MediaStore.Audio.Albums.ALBUM,
                                    MediaStore.Audio.Albums.ARTIST};
// Returns a new CursorLoader
return new CursorLoader(getActivity(),
                        MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI,
                        projection,
                        null,
                        null,
                        MediaStore.Audio.Albums.ALBUM + " ASC");

它返回一个有效的光标,其中包含所有唯一的专辑及其各自的艺术家、专辑名称、id和专辑艺术路径。然而,我不知道如何使用相册艺术路径。以下是我从ALBUM_ART列获得的路径示例:

/storage/emulated/0/Android/data/com.android.providers.media/albumthumbs/1420524553603

我想把这个传给毕加索,但它又犯了一个错误。我是这样做的:

Picasso.with(mContext).load(Uri.parseUri(albumArtPath)).into(imageView);

其中albumArtPath是我从光标得到的路径(见上文)。我最终得到了一个空白的ImageView,所以基本上没有加载任何内容。如何让Picasso使用Mediastore相册艺术路径?

这是一个文件路径,而不是URI。

其中任何一个都可以:

Picasso.with(mContext).load(new File(albumArtPath)).into(imageView);
Picasso.with(mContext).load(Uri.parse("file://" + albumArtPath)).into(imageView);
Picasso.with(mContext).load(Uri.fromFile(new File(albumArtPath))).into(imageView);

最新更新