我正在为android工作的音乐播放器应用程序。我正在尝试使用毕加索(一个外部库)来有效地加载专辑艺术。但是专辑的封面并没有被展示出来。代码中没有错误,项目编译正确,但图像没有显示。
为此,我从"MediaStore.Audio.AlbumColumns.ALBUM_ART"获取专辑封面Uri。然后我在列表适配器的getView()方法中使用它:
Picasso.with(上下文).load (Uri.parse (album_art_uri)) .into (myImageView);
我不知道这是怎么回事?请帮我想一下。
Uri musicUri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Cursor musicCursor = musicResolver.query(musicUri, null, null, null,
null);
int album_id = musicCursor.getColumnIndex(android.provider.MediaStore.Audio.Media.ALBUM_ID);
cursor = managedQuery(MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI,
new String[] {MediaStore.Audio.Albums._ID, MediaStore.Audio.Albums.ALBUM_ART},
MediaStore.Audio.Albums._ID+ "=?",
new String[] {musicCursor.getString(album_id)},
null);
if (cursor.moveToFirst()) {
thisAlbumArt = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Albums.ALBUM_ART));
}
然后在getView()中加载毕加索,如下所示。它为我工作,但它很慢
Picasso.with(mContext)
.load(Uri.parse("file://"+thisAlbumArt))
.resize(220,220)
.noFade().centerCrop()
.error(R.drawable.music)
.placeholder(R.drawable.blank_img)
.into(yourImageView);
参考链接:如何使用mediaststore . audio . albums . album_art显示专辑封面?