Oui, mais j'ai utilisé ma propre mise en œuvre du chargeur d'image, très similaire à DroidFu (avec en mémoire/mise en cache de fichiers, filetée et le chargement d'images none-thread). Et il semble que vous ne pouvez pas charger l'image par les threads avec la configuration de l'adaptateur Galerie + Curseur, ou bien vous obtenez un défilement très agité, au lieu d'un défilement continu continu.
Voici un exemple de code, j'utilise le même adaptateur de curseur pour les vues de liste, de galerie et de grille.
public class CatalogCursorAdapter extends CursorAdapter {
private Context context = null;
private HLBitmapManager iMan;
private CatalogViewHolder holder;
private final LayoutInflater inflater;
private int layout;
public CatalogCursorAdapter(Context context, Cursor c, int layout)
{
super(context, c, true);
inflater = LayoutInflater.from(context);
this.layout = layout;
this.context = context;
iMan = new HLBitmapManager(context.getCacheDir());
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
final View view = inflater.inflate(layout, parent, false);
return view;
}
@Override
public void bindView(View v, Context context, Cursor c) {
String brandName = c.getString(c.getColumnIndex("display_name"));
String category = c.getString(c.getColumnIndex("display_price"));
String imgUrl = c.getString(c.getColumnIndex("img_url"));
holder = (CatalogViewHolder) v.getTag();
if(holder == null) {
holder = new CatalogViewHolder(v);
v.setTag(holder);
}
Bitmap image;
switch (this.layout) {
case R.layout.catalog_list_row:
holder.title.setText(brandName);
holder.sub_title.setText(category);
iMan.fetchBitmapOnThread(imgUrl, Constants.EVENT_LISTVIEW_IMG_WIDTH, Constants.EVENT_LISTVIEW_IMG_HEIGHT, holder.icon);
break;
case R.layout.catalog_grid_cell:
iMan.fetchBitmapOnThread(imgUrl, Constants.EVENT_LISTVIEW_IMG_WIDTH, Constants.EVENT_LISTVIEW_IMG_HEIGHT, holder.icon);
break;
case R.layout.catalog_slide_cell:
image = iMan.fetchBitmap(imgUrl, Constants.EVENT_LISTVIEW_IMG_WIDTH, Constants.EVENT_LISTVIEW_IMG_HEIGHT);
holder.icon.setImageBitmap(image);
break;
}
holder.icon.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
}
}
pouvez-vous me dire quel est le « HLBitmapManager » – pengwang
HLBitmapManager est ma propre implémentation de téléchargeur d'image. vous pouvez le remplacer par tout ce que vous trouvez là-bas qui vous aide à télécharger et gérer votre cache d'image. –