package com.simtice.cnbeta.adapter;
import android.content.Context;
import android.graphics.Bitmap;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.simtice.cnbeta.R;
import com.simtice.cnbeta.util.CommonUtil;
import com.simtice.cnbeta.util.imagecache.ImageAsynLoader;
import com.simtice.cnbeta.util.imagecache.ImageUtil;
/**
* 带有图片加载器的适配器
*
* @author xxf
*
*/
public class ImageLoadAdapter extends BaseAdapter {
private ImageAsynLoader loader;
private Bitmap defaultBitmap;
private ListView listView;
private PullToRefreshListView pf;
public Bitmap getDefaultBitmap() {
return defaultBitmap;
}
public ImageAsynLoader getLoader() {
return loader;
}
// 当前是否正在滑动
private boolean isFling;
public void setFling(boolean isFling) {
this.isFling = isFling;
}
public ImageLoadAdapter(Context context, ListView listview) {
loader = new ImageAsynLoader(context);
loader.isSaveThumb(true);
loader.createFileCacheDir();
loader.setDecodeSize(CommonUtil.getScreenWidth(context), 200);
defaultBitmap = ImageUtil.readBitmap(context, R.drawable.aa_photo_empty);
this.listView = listview;
this.listView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == SCROLL_STATE_FLING) {
setFling(true);
} else {
setFling(false);
notifyDataSetChanged();
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
}
});
}
public ImageLoadAdapter(Context context, PullToRefreshListView listview) {
loader = new ImageAsynLoader(context);
loader.isSaveThumb(true);
loader.createFileCacheDir();
loader.setDecodeSize(CommonUtil.getScreenWidth(context), 200);
defaultBitmap = ImageUtil.readBitmap(context, R.drawable.aa_photo_empty);
this.pf = listview;
this.pf.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == SCROLL_STATE_FLING) {
setFling(true);
} else {
setFling(false);
notifyDataSetChanged();
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
}
});
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 0;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
return null;
}
public void loadImage(String url, ImageView imageView, Bitmap defaultBitmap) {
if (isFling) {// 当前正在滑动,只从缓存读取图片
loader.displayImage(url, imageView, true, defaultBitmap);
} else {
loader.displayImage(url, imageView, false, defaultBitmap);
}
}
}