package com.hyrt.ceiphone.adapter; import java.util.HashMap; import java.util.List; import com.hyrt.cei.application.CeiApplication; import com.hyrt.cei.util.AsyncImageLoader; import com.hyrt.cei.vo.Courseware; import com.hyrt.cei.vo.ImageResourse; import com.hyrt.ceiphone.R; import android.app.Activity; import android.content.Context; import android.graphics.drawable.Drawable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.GridView; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; public class CourseDetailAboutAdapter extends BaseAdapter { private List<Courseware> coursewares; private LayoutInflater inflater; private AsyncImageLoader asyncImageLoader; private HashMap<String, Drawable> drawables = new HashMap<String, Drawable>(); private GridView gv; public CourseDetailAboutAdapter(Activity activity, List<Courseware> coursewares,GridView gv) { this.coursewares = coursewares; this.gv = gv; inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); asyncImageLoader = ((CeiApplication) (activity.getApplication())).asyncImageLoader; } @Override public int getCount() { return coursewares.size(); } @Override public Object getItem(int position) { return coursewares.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { holder = new ViewHolder(); convertView = inflater.inflate(R.layout.phone_studydetail_gridview_item, null); holder.classIcon = (ImageView) ((LinearLayout)convertView).getChildAt(0); holder.title = (TextView) ((LinearLayout)convertView).getChildAt(1); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } String imageUrl = coursewares.get(position).getSmallPath(); holder.classIcon.setTag(imageUrl); holder.title.setText("第"+ coursewares.get(position).getClassLevel()+"集"); if (drawables.containsKey(imageUrl) && drawables.get(imageUrl) != null) { holder.classIcon.setImageDrawable(drawables.get(imageUrl)); } else { ImageResourse imageResource = new ImageResourse(); imageResource.setIconUrl(imageUrl); imageResource.setIconId(coursewares.get(position).getClassId()); asyncImageLoader.loadDrawable(imageResource, new AsyncImageLoader.ImageCallback() { @Override public void imageLoaded(Drawable drawable, String path) { ImageView imageView = (ImageView) gv .findViewWithTag(path); if (drawable != null && imageView != null) { imageView.setImageDrawable(drawable); drawables.put(path,drawable); } } }); } return convertView; } class ViewHolder{ ImageView classIcon; TextView title; } }