使用毕加索显示音乐专辑封面

displaying album art for music using picasso

您好,我需要使用 Picasso 有效地显示音乐文件的 专辑封面。我已经在我的应用程序中配置了毕加索。但是我无法显示音乐文件的内部存储中的专辑封面。

我试过这段代码,但它不起作用意味着没有错误,但它没有显示任何东西。

  1. 使用 uri :

    cursor = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, MediaStore.Audio.AudioColumns.DURATION + ">0", null, sortOrder);
    
    cursor.moveToFirst();
    
    a = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID));
    
    l = Long.parseLong(a);
    final Uri sArtworkUri = Uri.parse("content://media/external/audio/albumart");
    Uri uri = ContentUris.withAppendedId(sArtworkUri, l);
    
    Picasso.with(MainActivity.this).load(uri).into(iv);
    
  2. 使用新文件:

    cursor = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, MediaStore.Audio.AudioColumns.DURATION + ">0", null, sortOrder);
    
    cursor.moveToFirst();
    
    a = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID));
    
    Picasso.with(this)
           .load(Uri.parse("file://"+a))
           .error(R.drawable.color_music_player_logo)
           .into(iv);
    

像这样为您的图像提供 Picasso 绝对路径:

String name = "image.jpeg";
String dir = Environment.getExternalStorageDirectory().getAbsolutePath();
Picasso.with(context).load(new File(dir + File.separator + name)).into(iv);

或者您可以使用 filechooser,这样您就可以 select 加载哪个图像或显示图像列表,然后单击为您加载图像....