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

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

构建 DraweeController

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

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

1
2
3
4
5
6
7
8
9
10
ControllerListener listener = new BaseControllerListener() {...}

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

mSimpleDraweeView.setController(controller);

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

更多细节:

Customizing the ImageRequest

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

1
2
3
4
5
6
7
8
9
10
11
Uri uri;
Postprocessor myPostprocessor = new Postprocessor() { ... }
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
    .setPostprocessor(myPostprocessor)
    .build();

DraweeController controller = Fresco.newDraweeControllerBuilder()
    .setImageRequest(request)
    .setOldController(mSimpleDraweeView.getController())
    // other setters as you need
    .build();

更多细节:

编辑和纠错