开源Imageloaderlibary异步记载图片出现重复
卓礼敏 2014-12-10 09:38:34 最近在做一个项目,使用listView来显示网上的新闻咨询, 列表子项会有图片加载,使用imageLoader来异步加载图片,发现很多列表都是加载相同的照片,求大家帮我看看。
源代码:
private ImageLoader imageLoader = ImageLoader.getInstance(); // 获取实例
// 配置
// 图片加载器初始化
imageLoader.init(ImageLoaderConfiguration.createDefault(mContext));
imageLoader.init(new ImageLoaderConfiguration.Builder(mContext.getApplicationContext()).build());
options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.images)
// 设置下载期间显示的照片
.showImageForEmptyUri(R.drawable.umeng_socialize_yixin_circle)
// 设置图片Uri为空或是失败的时候显示照片
.showImageOnFail(R.drawable.umeng_socialize_yixin_circle)
// 设置图片加载或解码过程中发生错误显示的照片
.cacheInMemory(true)
// 设置下载的图片是否缓存
.cacheOnDisc(true)
// 设置下载的图片是否存在
.resetViewBeforeLoading(true)
.displayer(new RoundedBitmapDisplayer(20)) // 设置成圆角图片
.build();
3. public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(R.layout.could_new_item, null);
holder = new ViewHolder();
holder.title = (TextView) convertView
.findViewById(R.id.MainTile);
holder.summary = (TextView) convertView
.findViewById(R.id.Summary);
holder.img = (ImageView) convertView
.findViewById(R.id.new_item_image);
// 给convertview 添加一个额外的数据
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag(); // 通过getTag的方式将数据取出来
}
New_Info info = mNews_list.get(position);
if (info != null) {
holder.title.setText(info.getMainTitle());
holder.summary.setText(info.getmSumrrary());
Log.i(Tag,
" positon=" + position + " link = " + info.getImgLink());
if (info.getImgLink() != null) {
// 异步加载照片
imageLoader.displayImage(info.getImgLink(), holder.img,
options);
} else {
holder.img.setVisibility(View.VISIBLE);
}
}
return convertView;
}
4. 以下是效果图: