package com.hyrt.cei.adapter; import java.util.HashMap; import java.util.List; import android.content.Context; import android.graphics.drawable.Drawable; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.widget.BaseAdapter; import android.widget.Gallery; import android.widget.ImageView; import com.hyrt.cei.application.CeiApplication; import com.hyrt.cei.ui.information.InformationActivity; import com.hyrt.cei.util.AsyncImageLoader; import com.hyrt.cei.util.AsyncImageLoader.ImageCallback; import com.hyrt.cei.vo.ImageResourse; import com.hyrt.cei.vo.InfoNew; import com.hyrt.ceiphone.R; public class InfomationGalleryAdapter extends BaseAdapter { private Context mContext; private List<InfoNew> data; public HashMap<Integer, Drawable> drawables = new HashMap<Integer, Drawable>(); private AsyncImageLoader asyncImageLoader; private Gallery gallery; public InfomationGalleryAdapter(Context mContext, List<InfoNew> data, Gallery gallery) { this.mContext = mContext; this.data = data; this.gallery = gallery; asyncImageLoader = ((CeiApplication) mContext.getApplicationContext()).asyncImageLoader; } @Override public int getCount() { // TODO Auto-generated method stub return Integer.MAX_VALUE; } @Override public Object getItem(int position) { // TODO Auto-generated method stub return data.get(position % 5); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = new ImageView(mContext); } convertView.setLayoutParams(new Gallery.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); if (data.size() != 0) { convertView.setTag(data.get(position % 5).getImagepath()); } ((ImageView) convertView).setScaleType(ImageView.ScaleType.FIT_XY); convertView .setBackgroundResource(R.drawable.courseware_big_default_icon); if (drawables.containsKey(Integer.valueOf(position % 5)) && drawables.get(Integer.valueOf(position % 5)) != null) { convertView.setBackgroundDrawable(drawables.get(Integer .valueOf(position % 5))); } else { ImageResourse imageResource = new ImageResourse(); if (data.size() != 0) { imageResource.setIconUrl(data.get(position % 5).getImagepath()); imageResource.setIconId(data.get(position % 5).getId()); imageResource.setIconTime(data.get(position % 5).getTime()); } asyncImageLoader.loadDrawable(imageResource, new ImageCallback() { @Override public void imageLoaded(Drawable imageDrawable, String imageUrl) { ImageView img = (ImageView) gallery.findViewWithTag(data .get(position % 5).getImagepath()); if (img != null && imageDrawable != null) { img.setImageDrawable(imageDrawable); drawables.put(Integer.valueOf(position % 5), imageDrawable); Log.i("view", position + "aic"); } } }); } return convertView; } }