package com.partynetwork.iparty.imessage; import java.util.ArrayList; import java.util.List; import java.util.Map; 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 com.partynetwork.iparty.R; import com.partynetwork.iparty.app.AppConfig; public class FaceAdapter extends BaseAdapter { public static final int NUM_PAGE = 5;// 总共有多少页 public static int NUM = 20;// 每页20个表情,还有最后一个删除button private LayoutInflater inflater; private int currentPage = 0; private Map<String, Integer> mFaceMap; private List<Integer> faceList = new ArrayList<Integer>(); public FaceAdapter(Context context, int currentPage) { this.inflater = LayoutInflater.from(context); this.currentPage = currentPage; AppConfig config = AppConfig.getAppConfig(context); mFaceMap = config.getFaceMap(); initData(); } private void initData() { for (Map.Entry<String, Integer> entry : mFaceMap.entrySet()) { faceList.add(entry.getValue()); } } @Override public int getCount() { return NUM + 1; } @Override public Object getItem(int position) { return faceList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; if (convertView == null) { viewHolder = new ViewHolder(); convertView = inflater.inflate(R.layout.face, null, false); viewHolder.faceIV = (ImageView) convertView .findViewById(R.id.face_iv); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } if (position == NUM) { viewHolder.faceIV.setImageResource(R.drawable.del_btn_nor); viewHolder.faceIV.setBackgroundDrawable(null); } else { int count = NUM * currentPage + position; if (count < 90) { viewHolder.faceIV.setImageResource(faceList.get(count)); } else { viewHolder.faceIV.setImageDrawable(null); } } return convertView; } public static class ViewHolder { ImageView faceIV; } }