廖祜秋 · 更新于 2018-11-28 11:00:42

使用ControllerBuilder

本教程内容来源于:http://fresco-cn.org
采用 知识共享 署名 4.0 国际 许可协议 进行许可

SimpleDraweeView 有两个方法可以设置所要加载显示图片,简单的方法就是setImageURI

如果你需要对加载显示的图片做更多的控制和定制,那就需要用到DraweeController,本页说明如何使用。

DraweeController

首先,创建一个DraweeController, 然后传递图片加载请求给PipelineDraweeControllerBuilder.

随后,你可以控制controller的其他选项了:

ControllerListener listener = new BaseControllerListener() {...}

DraweeController controller = Fresco.newDraweeControllerBuilder()
    .setUri(uri)
    .setTapToRetryEnabled(true)
    .setOldController(mSimpleDraweeView.getController())
    .setControllerListener(listener)
    .build();

mSimpleDraweeView.setController(controller);

在指定一个新的controller的时候,使用setOldController,这可节省不必要的内存分配。

更多细节:

自定义图片加载请求

在更进一步的用法中,你需要给Image pipeline 发送一个ImageRequest。下面是一个图片加载后,使用后处理器(postprocessor) 进行图片后处理的例子.

java
Uri uri;
Postprocessor myPostprocessor = new Postprocessor() { ... }
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
    .setPostprocessor(myPostprocessor)
    .build();

DraweeController controller = Fresco.newDraweeControllerBuilder()
    .setImageRequest(request)
    .setOldController(mSimpleDraweeView.getController())
    // 其他设置
    .build();

更多细节:

上一篇: 圆角/圆圈 下一篇: 渐进式JPEG图