0

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

4

1 回答 1

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);
于 2015-02-06T02:44:58.467 回答