Listview中包含许多不同格式的文件,对图片格式生成缩略图显示。那么我的问题来了:如果图片过多,在下滑或者上滑的时候,其他格式的文件显示的图标会乱掉,会显示成图片缩略图的样子,打断点调试发现非图片格式文件走的是正确的显示方式,但是实际显示出来的确是某个图片缩略图。
附上显示方法:
final ViewHolderCd holdercd;
if (convertView == null) {
convertView = View.inflate(ct, R.layout.newlist2, null);
holdercd= new ViewHolderCd();
holdercd.rl_gx = (LinearLayout) convertView
.findViewById(R.id.rl_gx);
holdercd.tv_time = (TextView) convertView.findViewById(R.id.tv_pc2);
holdercd.im = (ImageView) convertView.findViewById(R.id.im_list2);
holdercd.cb = (CheckBox) convertView.findViewById(R.id.cb_gxxz);
convertView.setTag(holdercd);
}else{
holdercd=(ViewHolderCd)convertView.getTag();
}
}
FILE_TYPE f_type = Mime_type.get_file_type(path);//将文件格式归类
if (f_type == FILE_TYPE.IMG_FILE) {//图片格式
setImage(holdercd,fileItemList.get(position).getPath());
} else if (f_type == FILE_TYPE.TEXT_FILE) {//文本格式
holdercd.im.setBackgroundResource(R.drawable.ic_txt);
} else if (f_type == FILE_TYPE.AUDIO_FILE) {//音乐格式
holdercd.im.setBackgroundResource(R.drawable.ic_music);
} else if (f_type == FILE_TYPE.MEDIA_FILE) {//视频格式格式
holdercd.im.setBackgroundResource(R.drawable.ic_video);
} else {
holdercd.im.setBackgroundResource(R.drawable.ic_weizhi);
}
private void setImage(final ViewHolderCd holdercd, String path) {
ImageLoader.loadDrawable(path, 60, 60, new ImageCallBack() {
@Override
public void imageLoaded(Bitmap drawable) {
holdercd.im.setImageBitmap(drawable);
}
}, new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Bitmap bitmap= (Bitmap) msg.obj;
holdercd.im.setImageBitmap(bitmap);
}
});
}
附上显示方法:
final ViewHolderCd holdercd;
if (convertView == null) {
convertView = View.inflate(ct, R.layout.newlist2, null);
holdercd= new ViewHolderCd();
holdercd.rl_gx = (LinearLayout) convertView
.findViewById(R.id.rl_gx);
holdercd.tv_time = (TextView) convertView.findViewById(R.id.tv_pc2);
holdercd.im = (ImageView) convertView.findViewById(R.id.im_list2);
holdercd.cb = (CheckBox) convertView.findViewById(R.id.cb_gxxz);
convertView.setTag(holdercd);
}else{
holdercd=(ViewHolderCd)convertView.getTag();
}
}
FILE_TYPE f_type = Mime_type.get_file_type(path);//将文件格式归类
if (f_type == FILE_TYPE.IMG_FILE) {//图片格式
setImage(holdercd,fileItemList.get(position).getPath());
} else if (f_type == FILE_TYPE.TEXT_FILE) {//文本格式
holdercd.im.setBackgroundResource(R.drawable.ic_txt);
} else if (f_type == FILE_TYPE.AUDIO_FILE) {//音乐格式
holdercd.im.setBackgroundResource(R.drawable.ic_music);
} else if (f_type == FILE_TYPE.MEDIA_FILE) {//视频格式格式
holdercd.im.setBackgroundResource(R.drawable.ic_video);
} else {
holdercd.im.setBackgroundResource(R.drawable.ic_weizhi);
}
private void setImage(final ViewHolderCd holdercd, String path) {
ImageLoader.loadDrawable(path, 60, 60, new ImageCallBack() {
@Override
public void imageLoaded(Bitmap drawable) {
holdercd.im.setImageBitmap(drawable);
}
}, new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Bitmap bitmap= (Bitmap) msg.obj;
holdercd.im.setImageBitmap(bitmap);
}
});
}