【发布时间】:2017-09-01 07:39:36
【问题描述】:
在 Android 中如何在列表视图中显示带有缩略图的音频文件?
【问题讨论】:
-
如果你是从安卓本地存储读取文件,那么stackoverflow.com/a/16972099/3496570
标签: android
在 Android 中如何在列表视图中显示带有缩略图的音频文件?
【问题讨论】:
标签: android
这里是从存储中获取音频的代码-
public class SongsManager{
// SDCard Path
private ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();
String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0";
Cursor cursor;
String[] projection = { MediaStore.Audio.Media.ALBUM_ID,
MediaStore.Audio.Media.DISPLAY_NAME, MediaStore.Audio.Media.DATA,MediaStore.Audio.Media.ARTIST,
MediaStore.Audio.Media.DURATION
};
@SuppressWarnings("deprecation")
public void getCursor(Activity context) {
cursor = context.managedQuery(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, projection,
selection, null, null);
}
public ArrayList<HashMap<String, String>> getPlayList() {
while (cursor.moveToNext()) {
HashMap<String, String> song = new HashMap<String, String>();
song.put("ID", cursor.getString(0));
song.put("songTitle", cursor.getString(1));
song.put("songPath", cursor.getString(2));
song.put("Artist", cursor.getString(3));
song.put("Duration", cursor.getString(4));
songsList.add(song);
}
// return songs list array
return songsList;
}
在 ListAdapter getview 方法中使用音频 id 获取音频拇指的代码
Uri sArtworkUri = Uri
.parse("content://media/external/audio/albumart");
Uri uri = ContentUris.withAppendedId(sArtworkUri,
Long.parseLong(songsList.get(position).get("ID")));
songimage.setImageURI(uri);
【讨论】:
managedQuery() 已被弃用 六年。请停止使用。在后台线程上使用ContentResolver,或使用CursorLoader。