2014-09-09 28 views

Trả lời

6

Sử dụng phương pháp quá tải .into(ImageView target, Callback callback) phù hợp với trường hợp của bạn. Bạn có thể sử dụng thực hiện cơ sở hoặc mở rộng của riêng bạn như Base:

Picasso.with(context).load(url).into(target, new Callback(){ 
      @Override 
      public void onSuccess() { 

      } 

      @Override 
      public void onError() { 

      } 
     }); 

Extended phiên bản:

package main.java.app.picasso.test; 

/** 
* Created by nikola on 9/9/14. 
*/ 
public abstract class TargetCallback implements Callback { 
    private ImageView mTarget; 

    public abstract void onSuccess(ImageView target); 
    public abstract void onError(ImageView target); 
    public TargetCallback(ImageView imageView){ 
     mTarget = imageView; 
    } 
    @Override 
    public void onSuccess() { 
     onSuccess(mTarget); 
    } 

    @Override 
    public void onError() { 
     onError(mTarget); 
    } 

} 

Cách sử dụng:

Picasso.with(context).load(url).into(target, new TargetCallback(target) { 
      @Override 
      public void onSuccess(ImageView target) { 

      } 

      @Override 
      public void onError(ImageView target) { 

      } 
     }); 
+0

Hình ảnh từ một loại url cụ thể không được hiển thị bởi picasso. Vì vậy, tôi đang cố gắng xác định xem Picasso có thể tải xuống hình ảnh ngay từ đầu hay không. Hai phương thức này có thể gọi lại giúp tôi xác định xem tải xuống không thành công hay chỉ là phương thức gọi lại để tải hình ảnh vào chế độ xem hình ảnh và không có gì liên quan đến tải xuống hình ảnh? Cảm ơn! – rgv

+0

@Nikola Despotoski Tôi đang tải tất cả hình ảnh của mình vào mục tiêu để nhận bitmap. Bây giờ tôi muốn biết url từ đó bitmap được load.how tôi có thể nhận được yêu cầu url hình ảnh trong mục tiêu? –

+0

@HarshalBhatt Cách dễ nhất là thêm đối số 'String' vào hàm tạo sẽ giữ url. –

6

Nếu hình ảnh được nạp đầy đủ nó sẽ được thiết lập trên ImageView đồng bộ.

Bạn có thể sử dụng gọi lại để xác nhận điều này.

final AtomicBoolean loaded = new AtomicBoolean(); 
Picasso.with(context).load(imageURI).into(imageView, new Callback.EmptyCallback() { 
    @Override public void onSuccess() { 
    loaded.set(true); 
    } 
}); 
if (loaded.get()) { 
    // The image was immediately available. 
} 
Các vấn đề liên quan