Избегайте мерцания при переключении изображения с низким разрешением на 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