SimpleDraweeView使用Fresco在替换图像上进行黑色修补

时间:2016-09-14 19:05:45

标签: android fresco

我正在尝试使用相同的方式替换mutiples图像(来自本地存储) 过了一会儿,黑色闪烁消失了,效果很好。

观看视频:http://sendvid.com/q92ry52l

我只做:for (Edge e : edges) { ArrayList<Edge> list = adjList.get(e.v1); if (list == null) list = new ArrayList<>(); list.add(e); // add the edge which contains the adjacent vertex and the weight adjList.put(e.v1, list); }

xml代码:

mSimpleDraweeView.setImageURI("file://" + imagesList.get(index));

我正在使用'com.facebook.fresco:fresco:0.13.0'

SimpleDraweeView。如何避免黑色闪烁?

由于

1 个答案:

答案 0 :(得分:2)

full discussion here

不幸的是,这是一个已知问题。如果设置了新URI,您将看到占位符图像,直到新图像准备就绪。当您拥有大型图像并且需要进行大量切换时(例如在您的示例中),这一点尤为明显。

我们将在未来的某个时候解决这个问题(请参阅此pull request)。 目前,您可以手动将RetainingDataSourceSupplier实施从所述拉取请求复制到您的项目,并使用它类似于MainActivity.java示例:

PipelineDraweeControllerBuilder builder = Fresco.newDraweeControllerBuilder()...
builder.setDataSourceSupplier(retainingDataSourceSupplier);
draweeView.setController(builder.build());