私はいくつかのリストビューを含むアプリケーションを持っています。リストビューには、イメージビューとテキストビューで構成される項目が含まれます。Android ListViewはインターネット経由で読み込んだ画像をミックスします
すべての画像のサムネイルは、サーバとそれらをロードするために使用されるパターンに大きさで、このようなものです:
- インスタンス化GetViewメソッドでDrawableManager
- 私は、次の 1を行う)親指のURIを渡しますImageViewインスタンスをdrawablemanagersのgetImageAsyncメソッド に変換します。1.2)このメソッドは、SDカードから読み込み、softreference + update imageviewドロワブルを保存すると、画像が存在する場合は最初にsdカードを探します。 1.2)sdに存在しない場合。 HTTPからフェッチし、SD(十分なスペースがある場合)に保存して、softreferenceとして置いて、imageview drawableを更新します。
イメージが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;
}
感謝を!