package com.lean56.andplug.image.adapter;
import android.content.Context;
import android.database.Cursor;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.CursorAdapter;
import android.widget.ImageView;
import com.lean56.andplug.BaseApplication;
import com.lean56.andplug.R;
import com.lean56.andplug.image.ImageLoadUtils;
import com.lean56.andplug.image.PhotoPickActivity;
import com.lean56.andplug.image.entity.ImageInfo;
/**
* GridPhotoAdapter
*
* @author Charles
*/
public class GridPhotoAdapter extends CursorAdapter {
final int itemHeight, itemWidth;
LayoutInflater mInflater;
PhotoPickActivity mActivity;
ImageLoadUtils mImageLoadUtils;
public GridPhotoAdapter(Context context, Cursor c, boolean autoRequery, PhotoPickActivity activity) {
super(context, c, autoRequery);
mInflater = LayoutInflater.from(context);
mActivity = activity;
mImageLoadUtils = new ImageLoadUtils();
int spacePix = context.getResources().getDimensionPixelSize(R.dimen.space_photo_pick_grid);
itemHeight = itemWidth = (BaseApplication.sWidthPix - spacePix * 4) / 3;
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
View convertView = mInflater.inflate(R.layout.item_photo_pick_grid, parent, false);
ViewGroup.LayoutParams layoutParams = convertView.getLayoutParams();
layoutParams.height = itemHeight;
layoutParams.width = itemWidth;
convertView.setLayoutParams(layoutParams);
GridViewHolder holder = new GridViewHolder();
holder.icon = (ImageView) convertView.findViewById(R.id.icon);
holder.iconFore = (ImageView) convertView.findViewById(R.id.iconFore);
holder.check = (CheckBox) convertView.findViewById(R.id.check);
PhotoPickActivity.GridViewCheckTag checkTag = new PhotoPickActivity.GridViewCheckTag(holder.iconFore, holder.check);
holder.check.setTag(checkTag);
holder.check.setOnClickListener(mClickItem);
convertView.setTag(holder);
ViewGroup.LayoutParams iconParam = holder.icon.getLayoutParams();
iconParam.width = itemWidth;
iconParam.height = itemHeight;
holder.icon.setLayoutParams(iconParam);
return convertView;
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
GridViewHolder holder;
holder = (GridViewHolder) view.getTag();
String path = ImageInfo.pathAddPrefix(cursor.getString(1));
mImageLoadUtils.loadPostImage(path, holder.icon);
((PhotoPickActivity.GridViewCheckTag) holder.check.getTag()).path = path;
boolean picked = mActivity.isPicked(path);
holder.check.setChecked(picked);
holder.iconFore.setVisibility(picked ? View.VISIBLE : View.INVISIBLE);
}
View.OnClickListener mClickItem = new View.OnClickListener() {
@Override
public void onClick(View v) {
mActivity.clickPhotoItem(v);
}
};
static class GridViewHolder {
ImageView icon;
ImageView iconFore;
CheckBox check;
}
}