package com.kitty.poclient.adapter; import java.util.Collections; import java.util.LinkedList; import java.util.List; import android.content.Context; import android.graphics.Bitmap; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.assist.ImageLoadingListener; import com.nostra13.universalimageloader.core.assist.SimpleImageLoadingListener; import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer; import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer; import com.kitty.poclient.R; import com.kitty.poclient.bean.LocalAlbum; import com.kitty.poclient.bean.LocalCache; import com.kitty.poclient.common.UpnpApp; import com.kitty.poclient.data.VirtualData; import com.kitty.poclient.domain.Album; import com.kitty.poclient.domain.Artist; import com.kitty.poclient.util.SingletonUtil; //Toast public class AlbumListAdapter extends BaseAdapter { private ImageLoadingListener animateFirstListener =new AnimateFirstDisplayListener(); private ImageLoader loader; private DisplayImageOptions options; private Context context; private ListView listview; public static int timce=0; public Bitmap preBitmap; public AlbumListAdapter(Context context, ListView listview) { this.context = context; this.listview = listview; loader = ImageLoader.getInstance(); options=new DisplayImageOptions.Builder() .showImageOnLoading(R.drawable.pic1) .cacheInMemory(true) .cacheOnDisc(true) .displayer(new RoundedBitmapDisplayer(0)) .build(); } @Override public int getCount() { return VirtualData.albums != null ? VirtualData.albums.size() : 0; } @Override public Object getItem(int position) { return VirtualData.albums != null ? VirtualData.albums.get(position) : null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { Holder holder; if (convertView == null || convertView.getTag() == null) { convertView = LayoutInflater.from(context).inflate(R.layout.mymusic_albums_item, null); holder = new Holder(convertView); // holder.ivCover.setImageResource(VirtualData.albums.get(position).getImgUrl()); convertView.setTag(holder); } else { holder = (Holder) convertView.getTag(); } if (VirtualData.albums == null) { return convertView; } Album album = VirtualData.albums.get(position); // 主标题 holder.mainTitleTextView.setText(album.getName()); loader.displayImage(album.getImgUrl(), holder.albumCoverImageView, options); return convertView; } class Holder { private ImageView albumCoverImageView; private TextView mainTitleTextView; private TextView subTitleTextView; private ImageView cacheStatusImageView; public Holder(View convertView) { albumCoverImageView = (ImageView) convertView.findViewById(R.id.iv_album_cover); mainTitleTextView = (TextView) convertView.findViewById(R.id.tv_album_name); subTitleTextView = (TextView) convertView.findViewById(R.id.tv_album_artist); cacheStatusImageView = (ImageView) convertView.findViewById(R.id.cache_status); } } private static class AnimateFirstDisplayListener extends SimpleImageLoadingListener{ static final List<String> displayedImages = Collections.synchronizedList(new LinkedList<String>()); @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { if (loadedImage != null) { ImageView imageView = (ImageView) view; boolean firstDisplay = !displayedImages.contains(imageUri); if (firstDisplay) { FadeInBitmapDisplayer.animate(imageView, 500); displayedImages.add(imageUri); } } } } }