你说的是专辑封面,MP3和wma格式的音乐文件是可以有专辑封面的,android提供了获取专辑封面的方法,我是这样用的,希望对你 有帮助: private static final BitmapFactory.Options sBitmapOptionsCache = new BitmapFactory.Options(); sBitmapOptionsCache.inPreferredConfig = Bitmap.Config.RGB_565; sBitmapOptionsCache.inDither = false; static HashMap<Integer, SoftReference<Bitmap>> sAlbumArtCache = new HashMap<Integer, SoftReference<Bitmap>>( 100, 0.85f); // Get album art for specified album. This method will not try to // fall back to getting artwork directly from the file, nor will // it attempt to repair the database. public static Bitmap getArtworkQuick(Context context, int album_id, int w, int h) { // NOTE: There is in fact a 1 pixel border on the right side in the // ImageView used to display this drawable. Take it into account now, so // we don't // have to scale later. if (sAlbumArtCache.containsKey(album_id)) { SoftReference<Bitmap> albumArt = sAlbumArtCache.get(album_id); Bitmap bitmap = albumArt.get(); if (bitmap != null) { return bitmap; } else { sAlbumArtCache.remove(album_id); Log.d("Music", "getArtworkQuick(): no Bitmap for " + album_id); } }// else { // Log.d("Music", "getArtworkQuick(): no cache for " + album_id); // } w -= 1; ContentResolver res = context.getContentResolver(); Uri uri = ContentUris.withAppendedId(sArtworkUri, album_id); if (uri != null) { ParcelFileDescriptor fd = null; try { fd = res.openFileDescriptor(uri, "r"); int sampleSize = 1; // Compute the closest power-of-two scale factor // and pass that to sBitmapOptionsCache.inSampleSize, which will // result in faster decoding and better quality sBitmapOptionsCache.inJustDecodeBounds = true; BitmapFactory.decodeFileDescriptor(fd.getFileDescriptor(), null, sBitmapOptionsCache); int nextWidth = sBitmapOptionsCache.outWidth >> 1; int nextHeight = sBitmapOptionsCache.outHeight >> 1; while (nextWidth > w && nextHeight > h) { sampleSize <<= 1; nextWidth >>= 1; nextHeight >>= 1; } sBitmapOptionsCache.inSampleSize = sampleSize; sBitmapOptionsCache.inJustDecodeBounds = false; Bitmap b = BitmapFactory.decodeFileDescriptor( fd.getFileDescriptor(), null, sBitmapOptionsCache); if (b != null) { // finally rescale to exactly the size we need // if (sBitmapOptionsCache.outWidth != w // || sBitmapOptionsCache.outHeight != h) { // Bitmap temp = b; // b = Bitmap.createScaledBitmap(b, w, h, false); // temp.recycle(); // } sAlbumArtCache.put(album_id, new SoftReference<Bitmap>(b)); } return b; } catch (FileNotFoundException e) { } finally { try { if (fd != null) fd.close(); } catch (IOException e) { } } } return null; }android的opencore这一块是不支持wma文件的,如果你想取到wma文件的专辑封面,可以参考http://download.csdn.net/detail/dazme886/3638064
private static final BitmapFactory.Options sBitmapOptionsCache = new BitmapFactory.Options();
sBitmapOptionsCache.inPreferredConfig = Bitmap.Config.RGB_565;
sBitmapOptionsCache.inDither = false;
static HashMap<Integer, SoftReference<Bitmap>> sAlbumArtCache = new HashMap<Integer, SoftReference<Bitmap>>(
100, 0.85f); // Get album art for specified album. This method will not try to
// fall back to getting artwork directly from the file, nor will
// it attempt to repair the database.
public static Bitmap getArtworkQuick(Context context, int album_id, int w,
int h) {
// NOTE: There is in fact a 1 pixel border on the right side in the
// ImageView used to display this drawable. Take it into account now, so
// we don't
// have to scale later.
if (sAlbumArtCache.containsKey(album_id)) {
SoftReference<Bitmap> albumArt = sAlbumArtCache.get(album_id);
Bitmap bitmap = albumArt.get();
if (bitmap != null) {
return bitmap;
} else {
sAlbumArtCache.remove(album_id);
Log.d("Music", "getArtworkQuick(): no Bitmap for " + album_id);
}
}// else {
// Log.d("Music", "getArtworkQuick(): no cache for " + album_id);
// } w -= 1;
ContentResolver res = context.getContentResolver();
Uri uri = ContentUris.withAppendedId(sArtworkUri, album_id);
if (uri != null) {
ParcelFileDescriptor fd = null;
try {
fd = res.openFileDescriptor(uri, "r");
int sampleSize = 1; // Compute the closest power-of-two scale factor
// and pass that to sBitmapOptionsCache.inSampleSize, which will
// result in faster decoding and better quality
sBitmapOptionsCache.inJustDecodeBounds = true;
BitmapFactory.decodeFileDescriptor(fd.getFileDescriptor(),
null, sBitmapOptionsCache); int nextWidth = sBitmapOptionsCache.outWidth >> 1;
int nextHeight = sBitmapOptionsCache.outHeight >> 1;
while (nextWidth > w && nextHeight > h) {
sampleSize <<= 1;
nextWidth >>= 1;
nextHeight >>= 1;
} sBitmapOptionsCache.inSampleSize = sampleSize;
sBitmapOptionsCache.inJustDecodeBounds = false;
Bitmap b = BitmapFactory.decodeFileDescriptor(
fd.getFileDescriptor(), null, sBitmapOptionsCache); if (b != null) {
// finally rescale to exactly the size we need
// if (sBitmapOptionsCache.outWidth != w
// || sBitmapOptionsCache.outHeight != h) {
// Bitmap temp = b;
// b = Bitmap.createScaledBitmap(b, w, h, false);
// temp.recycle();
// } sAlbumArtCache.put(album_id, new SoftReference<Bitmap>(b));
} return b;
} catch (FileNotFoundException e) { } finally {
try {
if (fd != null)
fd.close();
} catch (IOException e) {
}
}
}
return null;
}android的opencore这一块是不支持wma文件的,如果你想取到wma文件的专辑封面,可以参考http://download.csdn.net/detail/dazme886/3638064