2017-09-25 2 views
0

Après Documentations de Fresco: http://frescolib.org/docs/listening-to-events.htmlFresco Auditeurs, quand sont-ils appelés?

J'ai mis en place un auditeur pour me notifier les événements, mais ce que je dois savoir (et n'a pas pu trouver cette information partout) est si les appels à faible résolution avisent la auditeurs aussi. Et si oui, comment l'éviter, ou définir un autre écouteur entièrement pour les appels à basse résolution. Pour ceux qui se demandent, Fresco peut charger une version basse résolution d'une image avant de charger la version haute résolution, et c'est ainsi que les rappels sont appelés sur ce qui me trouble.

Ceci est mon code, pour référence:

/* 
    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(); 

Répondre

1

Si vous souhaitez informer sur les événements de demande basse résolution, vous devez ajouter un RequestListener à la demande basse résolution:

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

Si la demande d'image d'origine se charge plus vite que la résolution basse, Fresco appellera l'onRequestCancelation sur l'écouteur de demande d'image basse résolution.

+0

Je ne veux que les événements de la requête haute résolution. Et j'ai aussi une requête personnalisée pour l'image haute résolution. Devrais-je définir l'écouteur là au lieu de le régler dans le contrôleur? Je suis un peu confus aux différences entre l'écouteur de contrôleur et l'écouteur de demande. –

+0

Oui, vous devez définir un écouteur sur demande, mais les écouteurs de requête sont ajoutés globalement dans ImagePipelineConfig et enregistrent toutes les requêtes. Vérifiez les différences sur votre lien: http://frescolib.org/docs/listening-to-events.html Je pense que vous avez besoin de l'écouteur du contrôleur – bvarga