package com.photoselector.ui; import java.util.ArrayList; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AbsListView.LayoutParams; import android.widget.TextView; import com.photoselector.R; import com.photoselector.model.PhotoModel; import com.photoselector.ui.PhotoItem.onItemClickListener; import com.photoselector.ui.PhotoItem.onPhotoItemCheckedListener; import com.photoselector.util.CommonUtils; /** * * @author Aizaz AZ * */ public class PhotoSelectorAdapter extends MBaseAdapter<PhotoModel> { private int itemWidth; private int horizentalNum = 3; private onPhotoItemCheckedListener listener; private LayoutParams itemLayoutParams; private onItemClickListener mCallback; private OnClickListener cameraListener; private PhotoSelectorAdapter(Context context, ArrayList<PhotoModel> models) { super(context, models); } public PhotoSelectorAdapter(Context context, ArrayList<PhotoModel> models, int screenWidth, onPhotoItemCheckedListener listener, onItemClickListener mCallback, OnClickListener cameraListener) { this(context, models); setItemWidth(screenWidth); this.listener = listener; this.mCallback = mCallback; this.cameraListener = cameraListener; } /** ����ÿһ��Item�Ŀ�� */ public void setItemWidth(int screenWidth) { int horizentalSpace = context.getResources().getDimensionPixelSize(R.dimen.sticky_item_horizontalSpacing); this.itemWidth = (screenWidth - (horizentalSpace * (horizentalNum - 1))) / horizentalNum; this.itemLayoutParams = new LayoutParams(itemWidth, itemWidth); } @Override public View getView(int position, View convertView, ViewGroup parent) { PhotoItem item = null; if (convertView == null || !(convertView instanceof PhotoItem)) { item = new PhotoItem(context, listener); item.setLayoutParams(itemLayoutParams); convertView = item; } else { item = (PhotoItem) convertView; } item.setImageDrawable(models.get(position)); item.setSelected(models.get(position).isChecked()); item.setOnClickListener(mCallback, position); return convertView; } }