2014-09-09 18 views

risposta

6

L'utilizzo del metodo sovraccarico .into(ImageView target, Callback callback) è appropriato per il tuo caso. È possibile utilizzare l'implementazione di base o estendere il proprio come Base:

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

      } 

      @Override 
      public void onError() { 

      } 
     }); 

Versione estesa:

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); 
    } 

} 

Usage:

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

      } 

      @Override 
      public void onError(ImageView target) { 

      } 
     }); 
+0

Un'immagine da un particolare tipo di URL non viene visualizzata da Picasso. Pertanto, sto cercando di determinare se Picasso è stato in grado di scaricare l'immagine in primo luogo. Questi due metodi di richiamo possono aiutarmi a determinare se il download non è riuscito o sono solo metodi di callback per caricare l'immagine nella visualizzazione dell'immagine e non hanno nulla a che fare con il download di immagini? Grazie! – rgv

+0

@Nikola Despotoski Sto caricando tutte le mie immagini nel target per ottenere bitmap. Ora voglio sapere l'URL da cui viene caricata la bitmap. Come posso ottenere l'URL dell'immagine richiesta nel target? –

+0

@HarshalBhatt Il modo più semplice è aggiungere l'argomento 'String' nel costruttore che manterrà l'url. –

6

Se l'immagine è a pieno carico che sarà impostato su ImageView in modo sincrono.

È possibile utilizzare la richiamata per asserire ciò.

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. 
} 
Problemi correlati