首页 文章

如何从android中的光标检索图像? getImageView?

提问于
浏览
1

我是Android开发的新手,我正在尝试构建一个音乐播放器 . 要在RecyclerView中添加歌曲数据,我创建了一个ArrayList(thisList),其中包含歌曲数据,包括专辑封面,但我无法弄清楚如何将图像添加到列表中:(

if(musicCursor!=null && musicCursor.moveToFirst()){
        //get columns
        int titleColumn = musicCursor.getColumnIndex
                (android.provider.MediaStore.Audio.Media.TITLE);
        int idColumn = musicCursor.getColumnIndex
                (android.provider.MediaStore.Audio.Media._ID);
        int artistColumn = musicCursor.getColumnIndex
                (android.provider.MediaStore.Audio.Media.ARTIST);
        int albumColumn = musicCursor.getColumnIndex
                (MediaStore.Audio.Media.ALBUM);

        int albumArtColumn = musicCursor.getColumnIndex
                (android.provider.MediaStore.Audio.Albums.ALBUM_ART);

        //add songs to list
        do {
            long thisId = musicCursor.getLong(idColumn);
            String thisTitle = musicCursor.getString(titleColumn);
            String thisArtist = musicCursor.getString(artistColumn);
            String thisAlbum = musicCursor.getString(albumColumn);

        //ImageView thisAlbumArt = musicCursor. ????

        theList.add(newSong(thisId,thisTitle,
                      thisArtist,thisAlbum,thisAlbumArt));
        }
        while (musicCursor.moveToNext());
    }

1 回答

  • 0

    试试这个:

    Cursor artCursor = context.getContentResolver().query(
        MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI,
        new String[] {MediaStore.Audio.AlbumColumns.ALBUM_ART},
        MediaStore.Audio.Media._ID+" =?",
        new String[]{String.valueOf(albumId)},
        null);
    String albumArt;
    if(artCursor.moveToNext()) {
        albumArt = "file://"+artCursor.getString(0);
    } else {
        albumArt = null;
    }
    artCursor.close();
    
    if(albumArt != null) {
        BitmapFactory.decodeFile(new File(albumArt));
    }
    

相关问题