ListView
曲に関する情報を保持するがあります。追加カバー画像をに追加したいListView
。
そのため、アダプターを作成しました。このアダプタの主なものは、次のgetView()
方法です。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final Map dataSet = mData.get(position);
View v = convertView;
ViewHolder holder;
if (convertView == null) {
v = mInflater.inflate(mResource, parent, false);
holder = new ViewHolder();
holder.artist = (TextView) v.findViewById(R.id.artist);
holder.imageView = (ImageView) v.findViewById(R.id.imageListView);
holder.title = (ScrollingTextView) v.findViewById(R.id.title);
holder.time = (TextView) v.findViewById(R.id.time);
v.setTag(holder);
} else {
holder = (ViewHolder) v.getTag();
}
holder.artist.setText((CharSequence) dataSet.get("artist"));
holder.title.setText((CharSequence) dataSet.get("title"));
holder.time.setText((CharSequence) dataSet.get("time"));
GetImg gi = new GetImg(v, mContext);
gi.start();
return v;
}
ViewHolder
パフォーマンスを向上させるためにを使用していることがわかります。を拡張するGetImg
クラスではThread
、画像をダウンロードして、に設定しBitmap
ていImageView
ます。
現在、次の問題が発生しています。場合によっては、の複数の子ビューがListView
同じ画像を取得します。なんで?
を使用しない場合convertView
、すべてが正常に機能しますが、。の場合ほど高速ではありませんconvertView
。