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 .
- ¿Cómo implementar correctamente un listview personalizado con imágenes usando la biblioteca de Picasso?
- Custom Downloader con Picasso
- ¿Cómo optimizo mejor Picasso en un GridView?
- Cómo borrar el caché de una URL específica de caché de Picasso
- Error de JNI en la animación de transición de escena - Capa supera el máximo
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
- ¿Cómo puedo acceder a la imagen en caché de Picasso para hacer una intención de compartir?
- Imágenes de Picasso Library y GridView
- Visualización de una imagen descargada de Internet como anotación - Uso de Picasso
- Cómo cargar imágenes de una tarjeta SD con la biblioteca de Picasso
- Cómo cargar miniaturas de video usando la biblioteca cuadrada picasso?
- Utilizar Picasso para obtener una devolución de llamada con un mapa de bits
- Descargando la imagen del almacenamiento de firebase usando picasso: excepción de memoria
- Picasso - obtener el camino de la imagen cargada
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 puedo cambiar el color de fondo de una fila específica correctamente en un ListView? (Androide)
- ¿Por qué obtengo una excepción de puntero nulo de TabWidget?