首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android应用开发(音乐播放器)

Android应用开发(音乐播放器)
EN

Stack Overflow用户
提问于 2017-01-31 23:09:14
回答 1查看 45关注 0票数 0

我正在做一个媒体播放器的项目,我已经从SD卡中提取了所有的歌曲,如下图所示。请在此处查看我的应用程序布局图像。enter image description here

但现在我想在列表视图的图像视图中添加他们相应的歌曲专辑图像,其中绿色的android图像是...就像这样,我想创造它......请看这里我想如何创建带有图片的列表enter image description here

因此,请告诉我如何获取每首歌曲的专辑画面,并将它们设置为其名称前面的列表视图......

我获取歌曲的代码如下所示..........

代码语言:javascript
复制
public class SongList extends Activity{
    Cursor c;
    int index;
    int count;
    String audioFilePath;
    MediaPlayer mp;

    ArrayList songs;

    public  void onCreate(Bundle SIS){
        super.onCreate(SIS);
        setContentView(R.layout.song_list);

        String orderBy= MediaStore.Audio.Media.TITLE;
        String cols[]=     {MediaStore.Audio.Media.DATA,MediaStore.Audio.Media.DISPLAY_NAME};
        c=this.managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,cols,null,null,orderBy);

    songs=new ArrayList();
    if(c!=null){
        while(c.moveToNext()){
            songs.add(c.getString(1).toString());
        }
    }
    ArrayAdapter adapter = new     ArrayAdapter(this,R.layout.custom_list_layout,R.id.listtext,songs);
    final ListView lv =(ListView)findViewById(R.id.songlist);
    lv.setAdapter(adapter);
EN

回答 1

Stack Overflow用户

发布于 2017-01-31 23:22:18

几年前,我也开发了一个音乐应用程序,这是我检索专辑列表的功能。

注意:现在差不多4年了,我没有改变我的代码,所以它可能不适合新的Android版本

代码语言:javascript
复制
private void        retrieveAlbums(){
    try {
        String      selection = MediaStore.Audio.Albums._ID + " != 0";
        String[]    projection = {
                "DISTINCT " + MediaStore.Audio.Albums._ID,
                MediaStore.Audio.Albums.ALBUM_KEY,
                MediaStore.Audio.Albums.ALBUM, 
                MediaStore.Audio.Albums.ARTIST,
                MediaStore.Audio.Albums.NUMBER_OF_SONGS
        };

        Cursor      cursor = context.getContentResolver().query(
                MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI,
                projection, selection, null, null);

        Album       tmp = null;

        if (cursor.moveToFirst()) {
            do {

                tmp = new Album(cursor.getInt(0),
                        cursor.getString(1),
                        cursor.getString(2),
                        cursor.getString(3),
                        cursor.getInt(4));

                Uri sArtworkUri = Uri
                        .parse("content://media/external/audio/albumart");
                Uri albumArtUri = ContentUris.withAppendedId(sArtworkUri, tmp.getId());

                Bitmap bitmap = null;
                try {
                    bitmap = MediaStore.Images.Media.getBitmap(
                            context.getContentResolver(), albumArtUri);

                } catch (FileNotFoundException exception) {
                    exception.printStackTrace();
                    bitmap = BitmapFactory.decodeResource(context.getResources(),
                            R.drawable.ic_launcher);
                } catch (IOException e) {
                    e.printStackTrace();
                    bitmap = BitmapFactory.decodeResource(context.getResources(),
                            R.drawable.ic_launcher);
                    e.printStackTrace();
                }
                tmp.setArt(bitmap);
                albumList.add(tmp);
            } while (cursor.moveToNext());
        }
        cursor.close();
    }  catch (SQLException e) {
        Log.e("Exception on query albums", e.toString());
    }
}

和相册类

代码语言:javascript
复制
public class Album {
private int     id;
private String  key;
private String  name;
private String  artist;
private int     nbSong;
private Bitmap  art;
private Bitmap  banner;

public Album(int id, String key, String name, String artist, int nbSong) {
    super();
    this.id = id;
    this.key = key;
    this.name = name;
    this.artist = artist;
    this.nbSong = nbSong;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public int getNbSong() {
    return nbSong;
}
public void setNbSong(int nbSong) {
    this.nbSong = nbSong;
}
public String getArtist() {
    return artist;
}
public void setArtist(String artist) {
    this.artist = artist;
}
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
public String getKey() {
    return key;
}
public void setKey(String key) {
    this.key = key;
}
public Bitmap getArt() {
    return art;
}
public void setArt(Bitmap art) {
    this.art = art;
}
public Bitmap getBanner() {
    return banner;
}
public void setBanner(Bitmap banner) {
    this.banner = banner;
}
}

希望能对你有所帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41960942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档