Android 使用毕加索显示音乐专辑艺术

Android 使用毕加索显示音乐专辑艺术,android,uri,picasso,android-file,Android,Uri,Picasso,Android File,您好,我需要使用毕加索高效地显示音乐文件的相册艺术。我已经在我的应用程序中配置了毕加索。但我无法从音乐文件的内部存储中显示相册艺术 我尝试了这段代码,但它不工作意味着没有错误,但它没有显示任何内容 使用uri: cursor = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, MediaStore.Audio.AudioColumns.DURATION + ">0", null, s

您好,我需要使用毕加索高效地显示音乐文件的相册艺术。我已经在我的应用程序中配置了毕加索。但我无法从音乐文件的内部存储中显示相册艺术

我尝试了这段代码,但它不工作意味着没有错误,但它没有显示任何内容

  • 使用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);
    
  • 使用新文件:

    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);
    

  • 将毕加索的绝对路径指定给您的图像,如下所示:

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

    或者您可以使用
    filechooser
    选择要加载的图像或显示图像列表,然后单击为您加载图像….

    给我们您的日志没有任何错误,它只是不显示任何内容。如果您为清单添加了权限,我想您已经这样做了。也许没有什么可展示的!尝试在资源中添加图片
    int resourceId=R.mipmap.ic_启动器。
    Picasso.with(context).load(resourceId).into(imageViewResource)这是正确的,但我想从sd卡或内部存储器获取图像,而不是从资源获取图像。我猜您试图加载图像的地址或查询没有您想要的内容。我会在我的课后返回给您,谢谢您的帮助。好的,我会回复您的