package cn.edu.chd.adapter; import java.util.List; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Point; 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 cn.edu.chd.utils.NativeImageLoader; import cn.edu.chd.utils.NativeImageLoader.NativeImageLoaderCallback; import cn.edu.chd.yitu.R; public class ChildAdapter extends BaseAdapter { private List<String> data; private GridView mGridView; private LayoutInflater inflater; private Point point; public ChildAdapter(List<String> data,GridView mGridView,Context context,Point point) { this.inflater = LayoutInflater.from(context); this.data = data; this.mGridView = mGridView; this.point = point; } @Override public int getCount() { return data.size(); } @Override public Object getItem(int position) { return data.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { ViewHolder holder; String path = data.get(position); if(convertView == null) { holder = new ViewHolder(); convertView = inflater.inflate(R.layout.child_group_item,null); holder.mImageView = (ImageView) convertView.findViewById(R.id.child_image); convertView.setTag(holder); }else { holder = (ViewHolder) convertView.getTag(); } holder.mImageView.setTag(path); holder.mImageView.setImageResource(R.drawable.pictures_no); Bitmap bitmap = NativeImageLoader.getInstance().loadNativeImage(path, point, new NativeImageLoaderCallback() { @Override public void onImageLoad(Bitmap bitmap, String path) { ImageView mImageView = (ImageView) mGridView.findViewWithTag(path); if(mImageView!=null && bitmap!=null) mImageView.setImageBitmap(bitmap); } }); if(bitmap!=null) { holder.mImageView.setImageBitmap(bitmap); } else { holder.mImageView.setImageResource(R.drawable.pictures_no); } return convertView; } private static class ViewHolder { ImageView mImageView; } }