2014-06-19 17 views
30

Z ImageView, mogę użyć następującego kodu, aby pobrać obraz z zwrotnegoJak załadować bitmapę za pomocą Picassa bez użycia ImageView?

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

    @Override 
    public void onError() { } 
); 

Albo po prostu uzyskać bitmapy z tego Picasso.with(activity).load(url).get();. Czy mimo to można dodać wywołanie zwrotne tylko po pobraniu obrazu? Jeśli to możliwe, proszę podać przykładowy kod, Pozdrawiam!

Odpowiedz

41

Możesz utworzyćTarget, a następnie obsłużyć Bitmap wewnątrz metod wywołania zwrotnego Targets.

ten sposób:

// 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 
} 
+0

kompilator narzeka dodanie 'final' do' myLoadedBitmap', ale nie mogę przypisać go oczywiście, jest to możliwe, aby naprawić? – siutsin

+0

Podczas próby udostępnienia na Instagramie można udostępniać z lokalnego pliku rysunkowego, ale nie z adresu URL. Wykreślanie .. – siutsin

+0

Zauważyłem, że 'onBitmapLoaded' nie zadzwoni po' onPrepareLoad' http://i.imgur.com/kKdba3d.png – siutsin