Java 壁画:SimpleDraweView总是在重新设置
我有一个SimpleDraweView,它正在通过控制器处理图像请求:Java 壁画:SimpleDraweView总是在重新设置,java,android,fresco,Java,Android,Fresco,我有一个SimpleDraweView,它正在通过控制器处理图像请求: Postprocessor redMeshPostprocessor = new BasePostprocessor() { @Override public String getName() { return "redMeshPostprocessor"; }
Postprocessor redMeshPostprocessor = new BasePostprocessor() {
@Override
public String getName() {
return "redMeshPostprocessor";
}
@Override
public CloseableReference<Bitmap> process(
Bitmap sourceBitmap,
PlatformBitmapFactory bitmapFactory) {
//custom processing on the bitmap and returning it
}
};
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.parse(coverImage))
.setPostprocessor(redMeshPostprocessor)
.build();
PipelineDraweeController controller = (PipelineDraweeController)
Fresco.newDraweeControllerBuilder()
.setImageRequest(request)
.setOldController(iv_cover.getController())
// other setters as you need
.build();
iv_cover.setController(controller);
问题是,加载第二个图像时,SimpleDraweView会在瞬间显示占位符。如何避免这种情况?希望两幅图像之间的过渡是无间隙和平滑的。谢谢 您可以这样做:
PipelineDraweeController controller = (PipelineDraweeController)
Fresco.newDraweeControllerBuilder()
.setLowResImageRequest(previousRequest)
.setImageRequest(newRequest)
.setOldController(iv_cover.getController())
.build();
iv_cover.setController(controller);
这会给你想要的行为。你可以这样做:
PipelineDraweeController controller = (PipelineDraweeController)
Fresco.newDraweeControllerBuilder()
.setLowResImageRequest(previousRequest)
.setImageRequest(newRequest)
.setOldController(iv_cover.getController())
.build();
iv_cover.setController(controller);
这应该给你想要的行为