如何在 Android 中获取专辑缩略图?
Posted
技术标签:
【中文标题】如何在 Android 中获取专辑缩略图?【英文标题】:How do I get Album Thumbnails in Android? 【发布时间】:2011-03-27 05:05:34 【问题描述】:我有一张我用这个得到的专辑列表:
private List<Album> getAlbums()
Cursor cur = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, null);
List<Album> albums = new ArrayList<Album>();
if (cur.moveToFirst())
do
int albumIdIndex = cur.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID);
int albumIndex = cur.getColumnIndex(MediaStore.Audio.Media.ALBUM);
int artistIndex = cur.getColumnIndex(MediaStore.Audio.Media.ARTIST);
int albumId = cur.getInt(albumIdIndex);
String name = cur.getString(albumIndex);
String artist = cur.getString(artistIndex);
LogUtil.i(TAG, "albumid= " + albumId + ", album= " + name + ", artist=" + artist);
Album album = new Album(albumId, name, artist);
if (!albums.contains(album))
albums.add(album);
while (cur.moveToNext());
return albums;
我在 ListActivity 中使用这个专辑列表,但我也想获取专辑的缩略图。
我知道我可以使用以下代码来获取实际的艺术作品,但我需要缩略图,因为如果我在列表活动中使用完整的图像,我会出现内存不足:
Uri sArtworkUri = Uri.parse("content://media/external/audio/albumart");
Uri uri = ContentUris.withAppendedId(sArtworkUri, album_id);
我看到了这个帖子: android media thumbnails. Serious issues? 但是我没有imageId,只有albuid,所以我认为它没有帮助。
【问题讨论】:
嘿,我也无法将 URI 更改为位图..你能告诉代码吗? 与其对 URI 使用自己的硬编码字符串,不如这样查询:***.com/a/17574629/997940 【参考方案1】:获取每个专辑封面,使用 Bitmap.createScaledBitmap() 创建它的新版本,使用它,recycle() 旧位图以使内存消失,移动到下一张图像。保留一个 HashMap 或其他东西,以确保您不会两次或多次加载相同的专辑封面(多个曲目将具有相同的专辑封面 ID,请将其缓存。
应该很好用。 (为我工作)
【讨论】:
这是我采用的方法,但我认为专辑封面也有一个 URI:content://media/external/audio/albumart_thumb。我现在实际上坚持将位图写入 URI content://media/external/audio/albumart。当我使用此代码时,我收到 FileNotFoundExceptions: Uri artUri = Uri.parse("content://media/external/audio/albumart"); Uri uri = ContentUris.withAppendedId(artworkUri, album.getId()); OutputStream outStream = getContentResolver().openOutputStream(uri); bmp.compress(Bitmap.CompressFormat.JPEG, 50, outStream); 哦 - 我从这里找到了写专辑的部分:netmite.com/android/mydroid/packages/apps/Music/src/com/android/… 嘿,我也无法将 URI 更改为位图..你能告诉代码吗?以上是关于如何在 Android 中获取专辑缩略图?的主要内容,如果未能解决你的问题,请参考以下文章