Search code examples
androidandroid-imageviewpicassoandroid-bitmap

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!


Solution

  • You can create a Target and then modify the Bitmap inside the Targets callback method onBitmapLoaded(...). Here 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
    }