Fresco预取多张图片,如何收听进度?

时间:2016-05-09 08:22:05

标签: fresco

我尝试用户DataSource<Void> dataSource dataSource.getProgress(),但是getProgress() return 0.0,只打印一次。 那么,我该怎么办?

1 个答案:

答案 0 :(得分:0)

当您从DataSource获得ImagePipeline时,您需要订阅它。所有这些也在Fresco documentation中解释。

DataSubscriber<T> dataSubscriber =
        new BaseDataSubscriber<T>() {
          @Override
          public void onNewResultImpl(DataSource<T> dataSource) {
            ...
          }
          @Override
          public void onFailureImpl(DataSource<T> dataSource) {
            ...
          }
          @Override
          public void onProgressUpdate(DataSource<T> dataSource) {
            float progress = dataSource.getProgress();
          }
        };
    mDataSource.subscribe(dataSubscriber, mUiThreadImmediateExecutor);