SimpleDraweeView 在使用 Fresco 替换图像时出现黑色闪烁
SimpleDraweeView black filckering on replacement image with Fresco
我正在尝试使用相同的方式替换多张图片(来自本地存储)
一段时间后,黑色闪烁消失,效果很好。
观看视频:http://sendvid.com/q92ry52l
我只做:mSimpleDraweeView.setImageURI("file://" + imagesList.get(index));
xml代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/fresco_image_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"/>
</RelativeLayout>
我正在使用 'com.facebook.fresco:fresco:0.13.0'
简单绘图视图。如何避免黑屏闪烁?
谢谢
很遗憾,这是一个已知问题。如果您设置新的 URI,您将看到占位符图像,直到新图像准备就绪。当您有大图像并且经常切换它们时(如您的示例),这一点尤其明显。
我们将在未来的某个时候修复此问题(请参阅此 pull request)。
现在,您可以手动将 RetainingDataSourceSupplier
实现从所述拉取请求复制到您的项目并使用它类似于 MainActivity.java
示例:
PipelineDraweeControllerBuilder builder = Fresco.newDraweeControllerBuilder()...
builder.setDataSourceSupplier(retainingDataSourceSupplier);
draweeView.setController(builder.build());
我正在尝试使用相同的方式替换多张图片(来自本地存储) 一段时间后,黑色闪烁消失,效果很好。
观看视频:http://sendvid.com/q92ry52l
我只做:mSimpleDraweeView.setImageURI("file://" + imagesList.get(index));
xml代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/fresco_image_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"/>
</RelativeLayout>
我正在使用 'com.facebook.fresco:fresco:0.13.0'
简单绘图视图。如何避免黑屏闪烁?
谢谢
很遗憾,这是一个已知问题。如果您设置新的 URI,您将看到占位符图像,直到新图像准备就绪。当您有大图像并且经常切换它们时(如您的示例),这一点尤其明显。
我们将在未来的某个时候修复此问题(请参阅此 pull request)。
现在,您可以手动将 RetainingDataSourceSupplier
实现从所述拉取请求复制到您的项目并使用它类似于 MainActivity.java
示例:
PipelineDraweeControllerBuilder builder = Fresco.newDraweeControllerBuilder()...
builder.setDataSourceSupplier(retainingDataSourceSupplier);
draweeView.setController(builder.build());