【问题标题】:Fresco Listeners, when are they called?Fresco Listeners,什么时候叫他们?
【发布时间】:2017-09-25 16:53:29
【问题描述】:

关注 Fresco 的文档:http://frescolib.org/docs/listening-to-events.html

我已经设置了一个监听器来通知我这些事件,但我需要知道(并且无法在任何地方找到此信息)是低分辨率调用是否也会通知监听器。如果是这样,如何避免它,或者完全为低分辨率调用设置不同的侦听器。对于那些想知道的人,Fresco 可以在加载高分辨率版本之前加载图像的低分辨率版本,这就是调用回调的方式,这让我感到困惑。

这是我的代码,供参考:

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

【问题讨论】:

    标签: android fresco


    【解决方案1】:

    如果你想通知低分辨率请求的事件,你需要在低分辨率请求中添加一个RequestListener:

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

    如果原始图片请求加载速度快于低分辨率,Fresco 将在低分辨率图片请求监听器上调用 onRequestCancelation。

    【讨论】:

    • 我只想要高分辨率请求的事件。而且我也有对高分辨率图像的自定义请求。我应该在那里设置监听器而不是在控制器中设置它吗?我对控制器侦听器和请求侦听器之间的区别有点困惑。
    • 是的,您应该在请求时设置一个监听器,但是请求监听器是全局注册在 ImagePipelineConfig 中添加的,并记录所有请求。检查链接上的差异:frescolib.org/docs/listening-to-events.html 我认为您需要控制器侦听器
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-21
    • 2021-09-07
    • 2011-09-20
    • 2019-07-17
    相关资源
    最近更新 更多