2014-09-09 19 views

Odpowiedz

6

Stosowanie przeciążonej metody .into(ImageView target, Callback callback) jest odpowiednie dla twojego przypadku. Można użyć realizację bazowej lub rozszerzyć własne jak Base:

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

      } 

      @Override 
      public void onError() { 

      } 
     }); 

rozszerzonej wersji:

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

} 

Zastosowanie:

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

      } 

      @Override 
      public void onError(ImageView target) { 

      } 
     }); 
+0

Obraz z określonego typu adresu URL nie jest wyświetlany przez picasso. Dlatego próbuję ustalić, czy Picasso był w stanie pobrać obraz w pierwszej kolejności. Czy te dwie metody oddzwonienia mogą mi pomóc w ustaleniu, czy pobieranie nie powiodło się, czy też są to po prostu metody wywołania zwrotnego dotyczące wczytywania obrazu do widoku obrazu i nie ma to nic wspólnego z pobieraniem obrazów? Dzięki! – rgv

+0

@Nikola Despotoski Załadowałem wszystkie moje obrazy do celu, aby uzyskać bitmapę. Teraz chcę znać adres URL, z którego ładowana jest bitmapa. Jak mogę uzyskać adres URL obrazu w celu? –

+0

@HarshalBhatt Najprostszym sposobem jest dodanie argumentu 'String' w konstruktorze, który będzie przechowywał adres URL. –

6

Jeśli obraz jest w pełni załadowany zostanie ustawiony na zegarze ImageView synchronicznie.

Możesz użyć wywołania zwrotnego, aby potwierdzić to.

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. 
} 
Powiązane problemy