使用Fresco从低分辨率图像切换到GIF时,避免闪烁

时间:2017-06-01 16:23:36

标签: android fresco

我使用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

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用此处说明的RetainingDataSourceSubscriberhttps://github.com/facebook/fresco/pull/1328