Android 来自 MediaStore 的专辑封面(和 Picasso)
Android Album Art from MediaStore (and Picasso)
正在尝试检索 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");
其中 returns 一个有效的光标,其中包含所有唯一专辑及其各自的艺术家、专辑名称、ID 和专辑封面路径。但是,我不知道如何使用专辑封面路径。这是我从 ALBUM_ART
列获得的路径示例:
/storage/emulated/0/Android/data/com.android.providers.media/albumthumbs/1420524553603
我正试图将其传递给 Picasso,但它返回了一个错误。我是这样做的:
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);
正在尝试检索 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");
其中 returns 一个有效的光标,其中包含所有唯一专辑及其各自的艺术家、专辑名称、ID 和专辑封面路径。但是,我不知道如何使用专辑封面路径。这是我从 ALBUM_ART
列获得的路径示例:
/storage/emulated/0/Android/data/com.android.providers.media/albumthumbs/1420524553603
我正试图将其传递给 Picasso,但它返回了一个错误。我是这样做的:
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);