package com.vanco.abplayer.adapter;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.util.Log;
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.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import com.vanco.abplayer.R;
import com.vanco.abplayer.model.VideoItem;
/**
* 视频列表适配器
*
* @author wwj_748
* @date 2012/8/9
*/
public class VideoListAdapter extends BaseAdapter {
private ViewHolder holder; // 视图容器
private LayoutInflater layoutInflater; // 布局加载器
private Context context; // 上下文对象
private List<VideoItem> list; // 博客列表
private ImageLoader imageLoader = ImageLoader.getInstance();// 得到图片加载器
private DisplayImageOptions options; // 显示图像设置
public VideoListAdapter(Context context) {
super();
this.context = context;
layoutInflater = LayoutInflater.from(context);
list = new ArrayList<VideoItem>();
// 图片加载器初始化
imageLoader.init(ImageLoaderConfiguration.createDefault(context));
// 使用DisplayImageOptions.Builder()创建DisplayImageOptions
options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.bili_default_image_tv_with_bg) // 设置图片下载期间显示的图片
.showImageForEmptyUri(R.drawable.bili_default_image_tv_with_bg) // 设置图片Uri为空或是错误的时候显示的图片
.showImageOnFail(R.drawable.bili_default_image_tv_with_bg) // 设置图片加载或解码过程中发生错误显示的图片
.cacheInMemory() // 设置下载的图片是否缓存在内存中
.cacheOnDisc() // 设置下载的图片是否缓存在SD卡中
.displayer(new RoundedBitmapDisplayer(1)) // 设置成圆角图片
.build(); // 创建配置过得DisplayImageOption对象
}
public void setList(List<VideoItem> list) {
this.list = list;
}
public void addList(List<VideoItem> list) {
this.list.addAll(list);
}
public void clearList() {
this.list.clear();
}
public List<VideoItem> getList() {
return list;
}
public void removeItem(int position) {
if (list.size() > 0) {
list.remove(position);
}
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null ) {
// 装载布局文件blog_list_item.xml
convertView = layoutInflater.inflate(R.layout.video_list_item, null);
holder = new ViewHolder();
// holder.id = (TextView) convertView.findViewById(R.id.id);
holder.title = (TextView) convertView.findViewById(R.id.list_item_title);
holder.uptext = (TextView) convertView.findViewById(R.id.TextView_up);
holder.bofangtext = (TextView) convertView.findViewById(R.id.TextView_bofang);
holder.img = (ImageView) convertView.findViewById(R.id.list_item_image);
convertView.setTag(holder); // 表示给View添加一个格外的数据,
} else {
holder = (ViewHolder) convertView.getTag();// 通过getTag的方法将数据取出来
}
VideoItem item = list.get(position); // 获取当前数据
if (item != null) {
// 显示标题内容
holder.title.setText(item.getTitle());
holder.uptext.setText("UP主:"+item.getAuthor());
holder.bofangtext.setText("播放:"+item.getPlay());
if (item.getPic() != null) {
holder.img.setVisibility(View.VISIBLE);
// 异步加载图片
imageLoader
.displayImage(item.getPic(), holder.img, options);
} else {
//
holder.img.setVisibility(View.VISIBLE);
}
}
return convertView;
}
private class ViewHolder {
TextView title;
ImageView img;
TextView uptext;
TextView bofangtext;
}
}