2017-09-25 4 views
0

Nach Frescos Dokumentationen: http://frescolib.org/docs/listening-to-events.htmlFresko Hörer, wann werden sie genannt?

Ich habe einen Listener einrichten über die Ereignisse zu informieren Sie mich, aber was ich wissen muss (und kann diese Informationen nicht überall) ist, wenn die Low-Res-Anrufe die über kommende Zuhörer auch. Und wenn ja, wie kann man es vermeiden oder einen anderen Listener für die niedrig aufgelösten Anrufe einstellen? Für diejenigen, die sich wundern, Fresco kann eine Low-Res-Version eines Bildes vor dem Laden der High-Res-Version laden, und das ist, wie die Rückrufe aufgerufen werden, ist das, was mich verwirrt.

Dies ist mein Code, als Referenz:

/* 
    Here we create the controller, aggregating everything that has been done before and some other settings, and set the controller to our view. 
*/ 

PipelineDraweeControllerBuilder builder = Fresco.newDraweeControllerBuilder(); 
builder.setLowResImageRequest(lowResRequest) 
.setImageRequest(request) 
.setTapToRetryEnabled(true) 
.setControllerListener(controllerListener) // this is the callback listener 
.setOldController(container.getController()); 
DraweeController controller = builder.build(); 

Antwort

1

Wenn Sie über die Ereignisse von geringer Auflösung Anfrage benachrichtigen mögen, müssen Sie eine RequestListener zu niedrig aufgelöster Anfrage hinzuzufügen:

ImageRequestBuilder.fromRequest(request) 
      .setRequestListener(requestListener) 
      .build(); 

Wenn die ursprüngliche Bildanforderung schneller als die niedrige Auflösung geladen wird, ruft Fresco die onRequestCancelation-Funktion bei einem Bildanforderungs-Listener mit niedriger Auflösung auf.

+0

Ich möchte nur die Ereignisse der High-Res-Anfrage. Und ich habe auch eine benutzerdefinierte Anfrage für das hochauflösende Bild. Soll ich den Hörer einstellen, anstatt ihn im Controller zu setzen? Die Unterschiede zwischen dem Controller-Listener und dem Request-Listener sind etwas verwirrend. –

+0

Ja, Sie sollten einen Listener auf Anfrage festlegen, aber Request-Listener werden global in der ImagePipelineConfig hinzugefügt und protokollieren alle Anfragen. Überprüfen Sie die Unterschiede auf Ihrem Link: http://frescolib.org/docs/listening-to-events.html Ich denke, dass Sie den Controller-Listener benötigen – bvarga