siutsin siutsin - 5 months ago 40
Android Question

How to load a Bitmap with Picasso without using an ImageView?

With

ImageView
, I can use the following code to download image with callback

Picasso.with(activity).load(url).into(imageView, new Callback()
{
@Override
public void onSuccess()
{
// do something
}

@Override
public void onError() { }
);


Or simply get the Bitmap from this
Picasso.with(activity).load(url).get();
. Is there anyway to add callback for just download the image? If possible please provide sample code, Cheers!

Answer

You can create a Target and then handle the Bitmap inside the Targets callback methods.

This is how:

// make sure to set Target as strong reference
private Target loadtarget;

public void loadBitmap(String url) {

    if (loadtarget == null) loadtarget = new Target() {
        @Override
        public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
            // do something with the Bitmap
            handleLoadedBitmap(bitmap);
        }

        @Override
        public void onBitmapFailed() {

        }
    };

    Picasso.with(this).load(url).into(loadtarget);
}

public void handleLoadedBitmap(Bitmap b) {
    // do something here
}