package com.hyrt.cei.adapter;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.zip.Inflater;
import com.hyrt.cei.R;
import com.hyrt.cei.application.CeiApplication;
import com.hyrt.cei.ui.ebook.ReadReportActivity;
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.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.GridView;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class ReportAdapter1 extends BaseAdapter {
private ReadReportActivity mContext;
private AsyncImageLoader asyncImageLoader;
private List<Report> data;
private GridView gridView;
private LayoutInflater inflater;
private HashMap<String,Drawable> drawables = new HashMap<String,Drawable>();
public ReportAdapter1(ReadReportActivity c, GridView gridView,
List<Report> data) {
mContext = c;
this.data = data;
this.gridView = gridView;
inflater=LayoutInflater.from(c);
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) {
if (convertView == null) {
convertView =inflater.inflate(R.layout.report_item, null);
}
ImageView imageView=(ImageView) convertView.findViewById(R.id.report_item_reportImg);
imageView.setTag(data.get(position).getSmallPpath());
TextView textView=(TextView) convertView.findViewById(R.id.report_item_reportName);
textView.setText(data.get(position).getName());//data.get(position).getName().length()>7?data.get(position).getName().substring(0,6)+"...":
ImageResourse imageResource = new ImageResourse();
imageResource.setIconUrl(data.get(position).getSmallPpath());
imageResource.setIconId(data.get(position).getId());
imageResource.setIconTime(data.get(position).getProtime());
if (drawables.containsKey(data.get(position).getSmallPpath())
&& drawables.get(data.get(position).getSmallPpath()) != null) {
imageView.setImageDrawable(drawables.get(
data.get(position).getSmallPpath()));
Log.i("view", "缓存起作用");
} else {
asyncImageLoader.loadDrawable(imageResource, new ImageCallback() {
@Override
public void imageLoaded(Drawable imageDrawable, String imageUrl) {
ImageView img = (ImageView) gridView.findViewWithTag(data.get(
position).getSmallPpath());
if(img!=null&&imageDrawable!=null){
//img.setLayoutParams(new LinearLayout.LayoutParams(120, 150));
//img.setScaleType(ImageView.ScaleType.FIT_CENTER);
img.setImageDrawable(imageDrawable);
drawables.put(data.get(position).getSmallPpath(), imageDrawable);
}
}
});
}
//imageView.setImageResource(R.drawable.bg0);
//imageView.setLayoutParams(new LinearLayout.LayoutParams(120,150));
return convertView;
}
public void clearBitmaps(){
Iterator<String> iterator = drawables.keySet().iterator();
while(iterator.hasNext()){
String path = iterator.next();
Drawable drawable = drawables.get(path);
if(((BitmapDrawable)drawable) != null)
((BitmapDrawable)drawable).getBitmap().recycle();
drawable = null;
}
}
}