Picasso ejecutar primero no llamar onBitmapLoaded in for loop

Tengo problema con conseguir el uso del mapa de bits Picasso adentro para el lazo.

No se llama onBitmapLoaded en la primera ejecución .

Segunda vez que lo llamó

for (int i = 0; i < 3; i++) { final int k=i; Picasso.with(this) .load(ListA.get(i).getImage()) //image .resize(100, 100) .transform(new ImageTrans_CircleTransform()) .into(new Target() { @Override public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { Log.i("load", "Ok " + k); //use bitmap for add marker to map } @Override public void onBitmapFailed(Drawable errorDrawable) { } @Override public void onPrepareLoad(Drawable placeHolderDrawable) { Log.i("load", "first " + k); } }); } 

Iniciar sesión

 11-04 16:42:22.222 11677-11677/com.tenten I/load﹕ first___0 11-04 16:42:22.222 11677-11677/com.tenten I/load﹕ first___1 11-04 16:42:22.232 11677-11677/com.tenten I/load﹕ first___2 

Uso picasso para obtener bitmap de la imagen de la lista.

Necesito bitmap no imageview.

Gracias. :RE

Un problema común con el uso de los objetivos de Picasso es que la gente no mantiene fuertes referencias a ellos. Esto da como resultado que los objetivos estén funcionando al azar, ya que a veces son recogidos por el GC antes de ser terminados, ya veces viven el tiempo suficiente para llamar a la llamada.

Lo que tiene que hacer es almacenar esas devoluciones de llamada en alguna parte hasta que hayan terminado. He aquí un ejemplo:

 final List<Target> targets = new ArrayList<Target>(); for (int i = 0; i < 3; i++) { final int k=i; Target target = new Target() { @Override public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { Log.i("Targets", "Loaded: " + k); targets.remove(this); } @Override public void onBitmapFailed(Drawable errorDrawable) { targets.remove(this); } @Override public void onPrepareLoad(Drawable placeHolderDrawable) { Log.i("Targets", "Preparing: " + k); } } targets.add(target); Picasso.with(this) .load(ListA.get(i).getImage()) // Start loading the current target .resize(100, 100) .into(target); } 

Para cerciorarse de que la lista no consiga GC'd también, hace a targets una variable global.

  • Cómo descargar y almacenar en caché el mapa de bits utilizando la biblioteca de Picasso
  • ¿Cómo integrar Google Drive con Picasso en Android?
  • Cómo cambiar el tamaño del marcador de imagen de ImageView con picasso
  • Solución local de caché de imágenes para Android: Square Picasso vs Universal Image Loader
  • ¿Cómo acceder a Drawable cuando se utiliza Picasso?
  • Rotar correctamente las imágenes web utilizando Picasso de Square
  • ViewPager + Picasso
  • Android get Imagen extraíble después de picasso cargado
  • Las imágenes no se cargan en android 5.0 usando la biblioteca picasso
  • Android - picasso muestra solo marcador de posición, no la imagen de URL
  • Android: falla en la imagen de carga de Picasso. Cómo mostrar mensaje de error
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.