2014-10-24 12 views
70

gibi oluşturucu kullanırken Picasso'dan olayları dinlemek için bir yol var mı:Picasso (Android) nasıl dinlenir?

Picasso.with(getContext()).load(url).into(imageView);

'Öyle düzgün boyutlandırırız ebeveyn GridView üzerinde requestLayout() ve invalidate() aramaya çalışıyorum ama yok Bir dinleyici veya geri çağrı ayarlamayı bilir.

Picasso'nun hata olayı raporlaması olduğunu görüyorum, ancak bir başarı etkinliği var mı?

cevap

214

onSuccess ve onError olaylarını almak için Callback'u kullanabilirsiniz. Sadece şöyle isteğinize yeni geri arama ekleyin:

Picasso.with(getContext()) 
    .load(url) 
    .into(imageView, new com.squareup.picasso.Callback() { 
         @Override 
         public void onSuccess() { 

         } 

         @Override 
         public void onError() { 

         } 
        }); 

Sonra onSuccess geri aramasında herhangi bir değişiklik ve modifikasyon gerçekleştirebilir. Eğer görünüme yüklenmeden önce bit eşlem erişmek gerekiyorsa

+0

güzel deneyin! Teşekkürler! – Prodikl

+1

onError() yürütüldüğünde nasıl hata gösteriliyor? – Jas

+1

Hata resmini ayarlamak için '.error (R.drawable.error_placeholder_image)' işlevini kullanın – Raptor

24

, kullanmayı deneyin:

Picasso.with(this).load("url").into(target); 

İdeal bir görünümde Hedefi uygulamak istiyorum: çağıran yönteminde

private Target target = new Target() { 
     @Override 
     public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {  
     } 
     @Override 
     public void onBitmapFailed() { 
     } 
} 

veya doğrudan tutucu nesnesini görüntüleyin.

Umut bu

+0

Bahşiş için teşekkürler! – Prodikl

6

Kare son zamanlarda güncelledi Hedef sınıfını yardımcı olur ve şimdi, (onPrepareLoad eklendi ve değiştirildi onBitmapFailed) geçersiz kılmak için daha yöntem vardır:

Target target = new Target() { 
    @Override 
    public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { 
    } 

    @Override 
    public void onBitmapFailed(Drawable errorDrawable) { 

    } 

    @Override 
    public void onPrepareLoad(Drawable placeHolderDrawable) { 

    } 
}; 

Ve hala kullanmak zorunda :

Picasso.with(context).load(url).into(target); 
5

(Ben herhangi bir cevap için yeterli açıklamayı üne sahip olmadığından) @Jas MrEngineer13 cevabı yorum olarak soru takip yanıtlayan yapmalısınız önceki örneğin into() yöntemine Callback kayıt için error() yöntemi kullanın:

Picasso.with(getContext()) 
    .load(url) 
    .error(R.drawable.error_placeholder_image) 
    .into(imageView, new com.squareup.picasso.Callback() { 
     @Override 
     public void onSuccess() { 
      //Success image already loaded into the view 
     } 

     @Override 
     public void onError() { 
      //Error placeholder image already loaded into the view, do further handling of this situation here 
     } 
    } 
); 
2
private final Callback mImageCallback = new Callback() { 
     @Override 
     public void onSuccess() { 
      startPostponedEnterTransition(); 
     } 

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

RequestCreator creator = Picasso.with(getActivity()).load(list.get(position).getId()); 
creator.into(imageView, mImageCallback); 
0

Bu

 Picasso.with(context) 
      .load(services.get(position).getImageInactive()) 
      .into(holder.icon, new Callback() { 
       @Override 
       public void onSuccess() { 
        holder.imageLoad.setVisibility(View.GONE); 
       } 

       @Override 
       public void onError() { 
        holder.icon.setImageResource(R.drawable.ic_error_image_load); 
       } 
      }); 
İlgili konular