package com.llf.photopicker.adapter; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.llf.basemodel.utils.ImageLoaderUtils; import com.llf.photopicker.R; import com.llf.photopicker.bean.Folder; import java.util.List; /** * Created by llf on 2016/10/18. */ public class FolderListAdapter extends BaseAdapter{ private Context context; private List<Folder> folderList; private int selected = 0; public FolderListAdapter(Context context,List<Folder> folderList){ this.context = context; this.folderList = folderList; } @Override public int getCount() { return folderList.size(); } @Override public Object getItem(int i) { return folderList.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if(convertView == null){ holder = new ViewHolder(); convertView = LayoutInflater.from(context).inflate(R.layout.item_img_sel_foder,parent,false); holder.ivFolder = (ImageView)convertView.findViewById(R.id.ivFolder); holder.tvFolderName = (TextView)convertView.findViewById(R.id.tvFolderName); holder.indicator = (ImageView)convertView.findViewById(R.id.indicator); holder.tvImageNum = (TextView)convertView.findViewById(R.id.tvImageNum); convertView.setTag(holder); }else{ holder = (ViewHolder)convertView.getTag(); } if (position == 0) { holder.tvFolderName.setText("所有图片"); holder.tvImageNum.setText("共" + getTotalImageSize() + "张"); ImageView ivFolder = holder.ivFolder; if (folderList.size() > 1) { ImageLoaderUtils.loadingImg(context,ivFolder,folderList.get(position+1).cover.path); } } else { holder.tvFolderName.setText(folderList.get(position).name); holder.tvImageNum.setText("共" + folderList.get(position).images.size() + "张"); ImageView ivFolder = holder.ivFolder; if (folderList.size() > 0) { ImageLoaderUtils.loadingImg(context,ivFolder,folderList.get(position).cover.path); } } if (selected == position) { holder.indicator.setVisibility(View.VISIBLE); } else { holder.indicator.setVisibility(View.GONE); } return convertView; } public class ViewHolder { ImageView ivFolder; TextView tvFolderName; TextView tvImageNum; ImageView indicator; } private int getTotalImageSize() { int result = 0; if (folderList != null && folderList.size() > 0) { for (Folder folder : folderList) { if(folder.images!=null) result += folder.images.size(); } } return result; } public void setSelectIndex(int position) { if (selected == position) return; selected = position; notifyDataSetChanged(); } public int getSelectIndex() { return selected; } }