¿Cómo acceder a Drawable cuando se utiliza Picasso?
Estoy utilizando el marco de Picasso para manejar la carga de imágenes en mi aplicación para Android. Después de cargar la imagen, necesito acceder al Drawable para aplicar algunas operaciones de enmascaramiento. El problema es que Picasso convierte el Drawable en un PicassoDrawable, y un simple retorno a Drawable no funciona.
Este es el código que tengo:
- ImageView con mapas de bits descargados desde URL (modo de repetición de mosaico)
- Adición de bordes para imagen redondeada android
- Almacenar imágenes en picasso con una clave de caché propia
- Android Picasso Configurar el tamaño de LruCache
- Biblioteca Picasso - Fuera de Memoria
Picasso.with(mContext).load(image.getPath()).into(mImageView, new Callback() { @Override public void onSuccess() { Util.applyMask(imageView); } @Override public void onError() { } });
Y el método Util.applyMask (ImageView):
public static void applyMask(ImageView imageView) { // this is where a class cast exception happens since it's actually a PicassoDrawable and not a Drawable Bitmap mainImage = ((BitmapDrawable) imageView.getDrawable()).getBitmap(); // ... }
Una posible solución es dada por Jake Wharton en esta edición github: https://github.com/square/picasso/issues/38
Para resumir, la solución es: "Si quieres acceder directamente al mapa de bits, necesitarás usar las devoluciones de llamada de Target. El PicassoDrawable se utiliza para permitir el desvanecimiento y el indicador de depuración."
No estoy exactamente seguro de cómo acceder a la devolución de llamada Target. ¿Alguien sabe cómo resolver esto?
Gracias.
- ¿Cómo obtengo una paleta para mi mapa de bits una vez que Picasso Loads?
- Android borrar algunas fotos de caché Picasso
- Clase de ImageView personalizada que no funciona con la biblioteca de descarga de imágenes de Picasso
- Cómo Picasso realmente Cache las imágenes
- Los resultados de RecyclerView + Glide resultan en un lío
- Picasso detectó un OkHttp no admitido en el classpath
- Descargar y guardar imágenes con Picasso
- UIL, Picasso - Las imágenes en adaptador siempre se recargan cuando se detiene el desplazamiento
Esto se respondió en github ( https://github.com/square/picasso/issues/38 ):
private Target target = new Target() { @Override public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { } @Override public void onBitmapFailed() { } } private void loadBitmap() { Picasso.with(this).load("url").into(target); }