Android 4.1 aでは、私にとって、一見奇妙なエラーがアプリで発生します。アプリでは、BaseAdapterを拡張するカスタムアダプターがギャラリーウィジェットに接続されています。左から右へ、またはその逆に高速でスクロールすると、例外メッセージが表示されたFCが表示されます。
java.lang.IllegalArgumentException:リサイクルされたビットマップを描画できません
getView(..)メソッドのコードは次のとおりです。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null){
// View is not recycled. Inflate the layout.
LayoutInflater vi = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = vi.inflate(R.layout.gallery_image, parent, false);
viewHolder = new ViewHolder();
viewHolder.image = (ImageView) convertView.findViewById(R.id.gallery_image);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder)convertView.getTag();
viewHolder.image.setImageDrawable(null);
}
imageLoader.displayImage(images.get(position).getFilename(),
images.get(position).getUrlThumbnail(),
viewHolder.image,
Math.round(BitmapUtil.convertDpToPixel(400f, context)),
Math.round(BitmapUtil.convertDpToPixel(400f, context)));
return convertView;
}
ImageViewをどこかでヌルにする必要があると思いますが、正しく機能させることができません。ImageLoaderは、画像をロードするための(非常に)単純なクラスです-LruCache、disk / sdcardから、またはリモートでフェッチします。