¿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:

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.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.