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.

  • Siempre se desvanecen en el marcador de posición con Picasso
  • Picasso no carga imágenes
  • Picasso java.lang.IllegalStateException: La llamada al método no debería ocurrir desde el hilo principal
  • Elemento compartido La transición no funciona en la primera carga con Picasso
  • Picasso image loading library: cómo cargar miniaturas de video
  • Los resultados de RecyclerView + Glide resultan en un lío
  • Compruebe si la imagen existe en Cache Picasso
  • Con RecyclerView, ¿Picasso sigue siendo necesario?
  • Image uri no muestra imágenes en ImageView en algún dispositivo Android
  • ¿Podría ocultar la barra de progreso después de cargar la imagen en picasso?
  • No puedo almacenar en caché las imágenes mientras que bindind la imagen usando MvvmCross
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.