package net.coding.program.common.photopick;
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.nostra13.universalimageloader.core.ImageLoader;
import net.coding.program.MyApp;
import net.coding.program.R;
import net.coding.program.common.photopick.PhotoPickActivity.GridViewCheckTag;
/**
* Created by chenchao on 15/5/6.
*/
class GridPhotoAdapter extends CursorAdapter {
final int itemWidth;
LayoutInflater mInflater;
PhotoPickActivity mActivity;
//
// enum Mode { All, Folder }
// private Mode mMode = Mode.All;
//
// void setmMode(Mode mMode) {
// this.mMode = mMode;
// }
View.OnClickListener mClickItem = new View.OnClickListener() {
@Override
public void onClick(View v) {
mActivity.clickPhotoItem(v);
}
};
GridPhotoAdapter(Context context, Cursor c, boolean autoRequery, PhotoPickActivity activity) {
super(context, c, autoRequery);
mInflater = LayoutInflater.from(context);
mActivity = activity;
int spacePix = context.getResources().getDimensionPixelSize(R.dimen.pickimage_gridlist_item_space);
itemWidth = (MyApp.sWidthPix - spacePix * 4) / 3;
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
View convertView = mInflater.inflate(R.layout.photopick_gridlist_item, parent, false);
ViewGroup.LayoutParams layoutParams = convertView.getLayoutParams();
layoutParams.height = itemWidth;
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);
GridViewCheckTag checkTag = new GridViewCheckTag(holder.iconFore);
holder.check.setTag(checkTag);
holder.check.setOnClickListener(mClickItem);
convertView.setTag(holder);
ViewGroup.LayoutParams iconParam = holder.icon.getLayoutParams();
iconParam.width = itemWidth;
iconParam.height = itemWidth;
holder.icon.setLayoutParams(iconParam);
return convertView;
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
GridViewHolder holder;
holder = (GridViewHolder) view.getTag();
ImageLoader imageLoader = ImageLoader.getInstance();
String path = ImageInfo.pathAddPreFix(cursor.getString(1));
imageLoader.displayImage(path, holder.icon, PhotoPickActivity.optionsImage);
((GridViewCheckTag) holder.check.getTag()).path = path;
boolean picked = mActivity.isPicked(path);
holder.check.setChecked(picked);
holder.iconFore.setVisibility(picked ? View.VISIBLE : View.INVISIBLE);
}
static class GridViewHolder {
ImageView icon;
ImageView iconFore;
CheckBox check;
}
}