我正在做一个媒体播放器的项目,我已经从SD卡中提取了所有的歌曲,如下图所示。请在此处查看我的应用程序布局图像。enter image description here
但现在我想在列表视图的图像视图中添加他们相应的歌曲专辑图像,其中绿色的android图像是...就像这样,我想创造它......请看这里我想如何创建带有图片的列表enter image description here
因此,请告诉我如何获取每首歌曲的专辑画面,并将它们设置为其名称前面的列表视图......
我获取歌曲的代码如下所示..........
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);发布于 2017-01-31 23:22:18
几年前,我也开发了一个音乐应用程序,这是我检索专辑列表的功能。
注意:现在差不多4年了,我没有改变我的代码,所以它可能不适合新的Android版本
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());
}
}和相册类
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;
}
}希望能对你有所帮助
https://stackoverflow.com/questions/41960942
复制相似问题