| 
 这是一个加载音乐图片的问题 
	@Override
	public View getView(final int position, View view, ViewGroup parent) {
		ViewHolder holder;
		if (view == null) {
			view = inflater.inflate(R.layout.list_view_music_item, null);
			holder = new ViewHolder();
			holder.tvMusicTitle = (TextView) view.findViewById(R.id.itemName);
			holder.tvMusicDes = (TextView) view.findViewById(R.id.itemDetail);
			holder.albumPic = (ImageView) view.findViewById(R.id.listView_albumPic);
			holder.frm_menu_layout = (RelativeLayout) view.findViewById(R.id.frm_menu);
			view.setTag(holder);
		} else {
			holder = (ViewHolder) view.getTag();
		}
		holder.frm_menu_layout.setOnClickListener(new MenuOnClickListener(position));
		if (MyApplication.getCurrentMusic() != null && 
				musics.get(position).getId() == MyApplication.getSharedPreferences()) {
			view.setBackgroundResource(R.drawable.item_background);
		} else {
			view.setBackgroundColor(Color.WHITE);
		}
		holder.tvMusicTitle.setText(musics.get(position).getTitle());
		holder.tvMusicDes.setText(musics.get(position).getArtist() + " - "
				+ musics.get(position).getAlbum());
		// 更新专辑图片
		holder.albumPic.setTag(musics.get(position).getData());
		holder.albumPic.setImageBitmap(ImageManager.loadMusicImage(activity,musics.get(position)));
		return view;
	}
然后我把 ImageManager 这个类贴出来,加载图片和默认图片的 /** * 加载图片管理类 * @author Administrator * */ public class ImageManager { private static final Uri sArtworkUri = Uri.parse("content://media/external/audio/albumart"); public static Bitmap loadMusicImage(Context context, Music music) { if(music == null){ //加载默认图片 return ImageUtil.readResourcesBitmap(context, R.drawable.default_album_identify); } return loadMusicImage(context, music, R.drawable.default_album_identify); } public static Bitmap loadMusicImage(Context context, Music music, int defaultImage) { Bitmap bm = getArtwork(context, music.getId(), music.getAlbumId()); if (bm == null && defaultImage!=0) { bm = ImageUtil.readResourcesBitmap(context, defaultImage); } return bm; } public static Bitmap getArtwork(Context context, long song_id, long album_id) { if (album_id < 0) { if (song_id >= 0) { Bitmap bm = getArtworkFromFile(context, song_id, -1); if (bm != null) { return bm; } } return null; } ContentResolver res = context.getContentResolver(); Uri uri = ContentUris.withAppendedId(sArtworkUri, album_id); if (uri != null) { InputStream in = null; try { in = res.openInputStream(uri); BitmapFactory.Options opt = new BitmapFactory.Options(); opt.inPreferredConfig = Bitmap.Config.RGB_565; opt.inPurgeable = true; opt.inInputShareable = true; return BitmapFactory.decodeStream(in, null, opt); } catch (FileNotFoundException ex) { Bitmap bm = getArtworkFromFile(context, song_id, album_id); if (bm != null) { if (bm.getConfig() == null) { bm = bm.copy(Bitmap.Config.RGB_565, false); } } return bm; } finally { try { if (in != null) { in.close(); } } catch (IOException ex) { } } } return null; } private static Bitmap getArtworkFromFile(Context context, long songid,long albumid) { Bitmap bm = null; if (albumid < 0 && songid < 0) { throw new IllegalArgumentException("Must specify an album or a song id"); } try { BitmapFactory.Options opt = new BitmapFactory.Options(); opt.inPreferredConfig = Bitmap.Config.RGB_565; opt.inPurgeable = true; opt.inInputShareable = true; if (albumid < 0) { Uri uri = Uri.parse("content://media/external/audio/media/"+ songid + "/albumart"); ParcelFileDescriptor pfd = context.getContentResolver().openFileDescriptor(uri, "r"); if (pfd != null) { FileDescriptor fd = pfd.getFileDescriptor(); bm = BitmapFactory.decodeFileDescriptor(fd, null, opt); } } else { Uri uri = ContentUris.withAppendedId(sArtworkUri, albumid); ParcelFileDescriptor pfd = context.getContentResolver().openFileDescriptor(uri, "r"); if (pfd != null) { FileDescriptor fd = pfd.getFileDescriptor(); bm = BitmapFactory.decodeFileDescriptor(fd, null, opt); } } } catch (FileNotFoundException ex) { } return bm; } }  | 
|
20分  | 
 
用异步加载或者第三方的吧,搜一下imageloader,很多 
 | 
20分  | 
 
不要在UI线程中加载图片,异步加载好后直接设置到imageview中 
可以使用Android-Universal-Image-Loader https://github.com/nostra13/Android-Universal-Image-Loader  | 
| 
 谢谢,问题已解决了!  | 
|