package com.krislq.cache.adapter;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
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.krislq.cache.ItemClickListener;
import com.krislq.cache.R;
import com.krislq.cache.manager.DownloadManager;
import com.krislq.cache.util.L;
/**
*
* @author <a href="mailto:kris1987@qq.com">Kris.lee</a>
* @website www.krislq.com
* @date Nov 21, 2012
* @version 1.0.0
*
*/
public class ImageAdapter extends BaseAdapter{
protected Context context;
private DownloadManager downloadImageManager;
private List<String> contentList;
private List<String> imageList;
private LayoutInflater mInflater;
private Map<Integer, View> viewMap;
private int count=0;
private int maxCount = 0;
public ImageAdapter(Context context, DownloadManager downloadManager) {
this.context = context;
this.downloadImageManager = downloadManager;
mInflater = LayoutInflater.from(context);
viewMap = new HashMap<Integer, View>();
count = 20;
String[] texts = context.getResources().getStringArray(R.array.texts);
contentList = Arrays.asList(texts);
L.e("contentList size:"+contentList.size());
maxCount = contentList.size();
String[] images = context.getResources().getStringArray(R.array.images);
imageList = Arrays.asList(images);
L.e("imageList size:"+imageList.size());
int imageSize = imageList.size();
if(imageSize< maxCount) {
maxCount =imageSize;
}
}
@Override
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int index = position;
ViewHolder hodler= null;
if(position>=maxCount)
{
index = position%maxCount;
}
if(viewMap.containsKey(position)) {
convertView = viewMap.get(position);
hodler = (ViewHolder) convertView.getTag();
} else {
convertView = mInflater.inflate(R.layout.image_item, null);
hodler = new ViewHolder();
hodler.nameView = (TextView)convertView.findViewById(R.id.tv_from_username);
String name = "www.krislq.com";
hodler.nameView.setText(name);
hodler.nameView.setOnClickListener(new ItemClickListener(name) {
@Override
public void onClick(View v) {
Uri uri = Uri.parse("http://"+getStrID());
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
context.startActivity(intent);
}
});
hodler.messageView = (TextView) convertView.findViewById(R.id.tv_title);
String content = contentList.get(index);
L.e("name:"+content);
hodler.messageView.setText(content);
hodler.pictureView = (ImageView) convertView.findViewById(R.id.iv_picture);
hodler.imageView = (ImageView) convertView.findViewById(R.id.iv_icon);
convertView.setTag(hodler);
viewMap.put(index, convertView);
}
String url = imageList.get(index);
L.e("url:"+url);
downloadImageManager.add(url, hodler.pictureView, R.drawable.default_user);
downloadImageManager.add(url, hodler.imageView, R.drawable.default_image);
return convertView;
}
class ViewHolder {
TextView nameView;
TextView messageView;
ImageView pictureView;
ImageView imageView;
}
}