MediaStore(和毕加索)的Android专辑封面

时间:2015-02-06 01:50:33

标签: android android-contentprovider picasso mediastore albumart

尝试检索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专辑封面路径?

1 个答案:

答案 0 :(得分:3)

这是一个文件路径,而不是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);