package com.llf.photopicker.adapter; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.ImageView; import com.llf.basemodel.recycleview.BaseViewHolder; import com.llf.basemodel.utils.ImageLoaderUtils; import com.llf.photopicker.ImgSelConfig; import com.llf.photopicker.R; import com.llf.photopicker.bean.Image; import java.util.ArrayList; import java.util.List; public class ImageListAdapter extends RecyclerView.Adapter<BaseViewHolder>{ private List<Image> datas; private Context context; private boolean showCamera; private boolean mutiSelect; private List<Image> selectedImageList = new ArrayList<>(); private OnItemClickListener mOnItemClickListener; public ImageListAdapter(Context context,List<Image> datas, ImgSelConfig config,OnItemClickListener mOnItemClickListener) { this.context = context; this.datas = datas; this.showCamera = config.needCamera; this.mutiSelect = config.multiSelect; this.mOnItemClickListener = mOnItemClickListener; } @Override public BaseViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { return new BaseViewHolder(LayoutInflater.from(context).inflate(R.layout.item_img_sel, parent, false)); } @Override public void onBindViewHolder(BaseViewHolder holder, final int position) { ImageView ivImage = holder.getView(R.id.ivImage); ImageView ivPhotoCheaked = holder.getView(R.id.ivPhotoCheaked); FrameLayout fl_shade = holder.getView(R.id.pi_picture_choose_item_select); if (position == 0&& showCamera) { ivImage.setImageResource(R.drawable.ic_take_photo); ivPhotoCheaked.setVisibility(View.GONE); }else{ ivPhotoCheaked.setVisibility(View.VISIBLE); ImageLoaderUtils.loadingImg(context,ivImage,datas.get(position).path); } if (mutiSelect) { if (selectedImageList.contains(datas.get(position))) { ivPhotoCheaked.setImageResource(R.drawable.ic_checked); fl_shade.setVisibility(View.VISIBLE); } else { ivPhotoCheaked.setImageResource(R.drawable.ic_uncheck); fl_shade.setVisibility(View.GONE); } } else { fl_shade.setVisibility(View.GONE); } holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mOnItemClickListener.onItemClick(position); } }); } @Override public int getItemCount() { return datas.size(); } public void select(Image image) { if (selectedImageList.contains(image)) { selectedImageList.remove(image); } else { selectedImageList.add(image); } notifyDataSetChanged(); } public interface OnItemClickListener { void onItemClick(int position); void onItemLongClick(int position); } }