2014-06-19 19 views
30

Với ImageView, tôi có thể sử dụng đoạn mã sau để tải hình ảnh với callbackLàm thế nào để tải một Bitmap với Picasso mà không cần sử dụng một ImageView?

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

    @Override 
    public void onError() { } 
); 

Hoặc đơn giản là có được Bitmap từ Picasso.with(activity).load(url).get(); này. Có anyway để thêm gọi lại cho chỉ cần tải về hình ảnh? Nếu có thể, vui lòng cung cấp mã mẫu, Chúc mừng!

Trả lời

41

Bạn có thể tạoTarget và sau đó xử lý Bitmap bên trong các Phương pháp gọi lại mục tiêu.

Đây là cách:

// 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

biên dịch phàn nàn về việc thêm 'final' đến' myLoadedBitmap', nhưng tôi không thể gán nó rõ ràng, là nó có thể để sửa chữa? – siutsin

+0

Vì tôi đang cố gắng chia sẻ với Instagram, bạn có thể chia sẻ từ địa phương có thể vẽ được nhưng không phải từ URL. Figuring out .. – siutsin

+0

Tôi nhận thấy rằng 'onBitmapLoaded' sẽ không gọi sau khi' onPrepareLoad' http://i.imgur.com/kKdba3d.png – siutsin

Các vấn đề liên quan