package com.hyrt.cei.adapter; import java.util.HashMap; import java.util.List; import com.hyrt.cei.R; import com.hyrt.cei.application.CeiApplication; import com.hyrt.cei.ui.ebook.ReadReportActivity; import com.hyrt.cei.ui.ebook.view.GalleryFlow; import com.hyrt.cei.util.AsyncImageLoader; import com.hyrt.cei.util.AsyncImageLoader.ImageCallback; import com.hyrt.cei.vo.ImageResourse; import com.hyrt.cei.vo.Report; import android.graphics.drawable.Drawable; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Gallery; import android.widget.ImageView; public class ReportAdapter extends BaseAdapter { private ReadReportActivity mContext; private AsyncImageLoader asyncImageLoader; private List<Report> data; private Gallery gallery; private HashMap<String,Drawable> drawables = new HashMap<String,Drawable>(); public ReportAdapter(ReadReportActivity c, Gallery gallery, List<Report> data) { mContext = c; this.data = data; this.gallery = gallery; asyncImageLoader = ((CeiApplication) c.getApplication()).asyncImageLoader; } public int getCount() { return data.size(); } public Object getItem(int position) { return data.get(position); } public long getItemId(int position) { return position; } public View getView(final int position, View convertView, ViewGroup parent) { final ImageView imageView; if (convertView == null) { imageView = new ImageView(mContext); } else { imageView = (ImageView) convertView; } imageView.setTag(data.get(position).getPpath()); ImageResourse imageResource = new ImageResourse(); imageResource.setIconUrl(data.get(position).getPpath()); imageResource.setIconId(data.get(position).getId()); imageResource.setIconTime(data.get(position).getProtime()); if (drawables.containsKey(data.get(position).getPpath()) && drawables.get(data.get(position).getPpath()) != null) { imageView.setImageDrawable(drawables.get( data.get(position).getPpath())); drawables.remove(data.get(position).getPpath()); Log.i("view", "缓存起作用"); } else { asyncImageLoader.loadDrawable(imageResource, new ImageCallback() { @Override public void imageLoaded(Drawable imageDrawable, String imageUrl) { ImageView img = (ImageView) gallery.findViewWithTag(data .get(position).getPpath()); if (img != null && imageDrawable != null) { drawables.put(data.get(position).getPpath(), imageDrawable); img.setLayoutParams(new Gallery.LayoutParams(300, 200)); // img.setScaleType(ImageView.ScaleType.FIT_CENTER); img.setImageDrawable(imageDrawable); } } }); } imageView.setLayoutParams(new Gallery.LayoutParams(300, 200)); return imageView; } }