从歌曲中获取ALBUM_ART

时间:2014-01-19 19:05:11

标签: android

首先,我应该说我是Android编程新手...... 我正在手机中检索所有歌曲,并使用LoadManager和BindView在ListView中显示以显示数据。但我无法在我的ImageView中显示ALBUM_ART。

这正是我需要的......

Android ListView: how to avoid database query in bindView()? Need to fetch one to many relationship data

但我不知道如何实施它。

来自歌曲装载机管理员的我的BindView

@Override
public void bindView(View view, Context contex, Cursor cursor) {

TextView songText = (TextView) view.getTag(R.id.txt_title);
TextView artistText = (TextView) view.getTag(R.id.txt_artist);
ImageView albumImg = (ImageView) view.getTag(R.id.img_album);

albumId = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID));

和我想在bindView中调用的另一个其他LoaderManager来检索album_art

public class AlbumListItem implements LoaderManager.LoaderCallbacks<Cursor> {

    @Override
    public Loader<Cursor> onCreateLoader(int id, Bundle args) {

        String[]  projection =  {
                MediaStore.Audio.Albums._ID,
                MediaStore.Audio.Albums.ALBUM_ART,
     };


        return new CursorLoader(MainActivity.this, MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI, projection
                , MediaStore.Audio.Albums.ALBUM_ID + " = ?", new String[]{albumId}, null);
    }

    @Override
    public void onLoadFinished(Loader<Cursor> arg0, Cursor arg1) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onLoaderReset(Loader<Cursor> arg0) {
        // TODO Auto-generated method stub

    }

}

但正如我所说,我不知道如何(或在哪里)插入或初始化AlbumListItem加载器 getLoaderManager()。initLoader(ID,null,MainActivity.this);

谢谢!

1 个答案:

答案 0 :(得分:0)

我有类似的程序,源代码位于https://github.com/pbirdsall/jasonisframed。随意看看,看看它是否有帮助。我基本上拉取文本和图像,将它们加载到数据库中并将它们放入列表视图中。