Избегайте мерцания при переключении изображения с низким разрешением на GIF с использованием Fresco

Я загружаю GIF-файлы в SimpleDraweeViews в RecyclerView, используя Fresco.

Я хотел бы загрузить статический эскиз сначала во время загрузки 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 ответ

Решение

Вы можете использовать RetainingDataSourceSubscriber как объяснено здесь: https://github.com/facebook/fresco/pull/1328

Другие вопросы по тегам