0
我有一个包含几个listviews的应用程序。列表视图包含由图像视图和文字视图组成的项目。Android ListView在通过互联网加载时混合图像
所有图像是用于加载它们的服务器和图案上的缩略图尺寸是这样的:
- 实例化一个DrawableManager
- 在getView方法i执行以下 1)通拇指URI和ImageView实例到drawablemanagers getImageAsync方法 1.2)如果图像存在,该方法将首先在SD卡上查看,如果从SD卡加载并保存softreference +更新imageview可绘制 1.2)如果sd上不存在。从HTTP获取并保存在SD(如果有足够的空间)作为softreference并更新imageview可绘制。
当SD卡上的图像存在时,一切正常。但是第一次(或者在没有SD卡的情况下使用该应用程序时)图像似乎会在滚动时填充到错误的列表视图行中。当我停止滚动问题修复后几秒钟自我。
它几乎就像是如果ImageView引用汇集或什么的。
任何想法?
我还包括getView方法:
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder vh;
if (convertView == null) {
convertView = inflater.inflate(R.layout.informationrow, null);
vh = new ViewHolder();
vh.imageView = (ImageView) convertView.findViewById(R.id.rowInformationIcon);
vh.textView = (TextView) convertView.findViewById(R.id.rowInformationTitleLine);
convertView.setTag(vh);
}
else
{
vh = (ViewHolder) convertView.getTag();
}
CustomCategory cc = items.get(position);
if (cc != null) {
vh.textView.setText(cc.get_name());
if (cc.getMediaUrl() != null) {
_drawMgr.fetchDrawableOnThread(cc.getMediaUrl(), vh.imageView);
vh.imageView.setBackgroundDrawable(getResources().getDrawable(R.drawable.imageframe));
}
else {
vh.imageView.setImageDrawable(getResources().getDrawable(R.drawable.trans4040));
vh.imageView.setBackgroundDrawable(null);
}
}
return convertView;
}
谢谢!