【问题标题】:Avoid flicker when switching from low res image to GIF using Fresco使用 Fresco 从低分辨率图像切换到 GIF 时避免闪烁
【发布时间】:2017-06-03 02:54:47
【问题描述】:

我正在使用 Fresco 将 GIF 加载到 RecyclerView 中的 SimpleDraweeViews 中。

我想先在 GIF 下载时加载静态缩略图,然后在 GIF 可用时立即加载。

它可以工作,但是当缩略图换成 GIF 时会出现白色闪烁。有什么办法可以避免吗?

将 fadeDuration 设置为 0 没有帮助。缓存 GIF 时我可以跳过缩略图,但我希望在所有情况下都避免闪烁。

视图很简单:

<com.facebook.drawee.view.SimpleDraweeView
    android:id="@+id/gif_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

而且代码看起来也很简单:

DraweeController controller = Fresco.newDraweeControllerBuilder()
            .setLowResImageRequest(ImageRequest.fromUri(thumbnailUrl))
            .setUri(contentUrl)
            .setAutoPlayAnimations(true)
            .setOldController(draweeView.getController()).build();

draweeView.setController(controller);

这里有一个视频:https://www.dropbox.com/s/vkyqltm1hrrnvaz/gifFlicker.m4v?dl=0

它使用这个 GIF:http://www.furrytalk.com/wp-content/uploads/2015/01/kitten.gif

谢谢!

【问题讨论】:

    标签: android fresco


    【解决方案1】:

    您可以使用RetainingDataSourceSubscriber,如下所述: https://github.com/facebook/fresco/pull/1328

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-14
      • 2014-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-12
      • 1970-01-01
      • 2020-06-22
      相关资源
      最近更新 更多