【发布时间】:2017-01-17 13:22:51
【问题描述】:
我正在使用 fresco 向我的应用程序显示图像。现在我正在尝试对我的图像应用一些过滤器,但问题是过滤器库只产生位图。但 draweeView.setImageBitmap 已被弃用。
我也试过这样的后处理器
MeshPostprocessor meshPostprocessor = new MeshPostprocessor();
meshPostprocessor.setFilter(filters.get(0));
draweeView = (SimpleDraweeView) view.findViewById(R.id.filter_image);
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(image)
.setPostprocessor(meshPostprocessor)
.setResizeOptions(new ResizeOptions(100, 100))
.build();
PipelineDraweeController controller = (PipelineDraweeController)
Fresco.newDraweeControllerBuilder()
.setImageRequest(request)
.setOldController(draweeView.getController())
.build();
draweeView.setController(controller);
这里是后处理器
public static class MeshPostprocessor extends BaseRepeatedPostProcessor {
private AbstractConfig.ImageFilterInterface filter;
public void setFilter(AbstractConfig.ImageFilterInterface filter) {
this.filter = filter;
update();
}
@Override
public String getName() {
return "meshPostprocessor";
}
@Override
public void process(Bitmap bitmap) {
bitmap = filter.renderImage(bitmap);
}
}
所以当我点击过滤器时,我会运行它
meshPostprocessor.setFilter(colorFilterConfig.get(position));
我尝试了调试器,代码通过了所有方法(setFilter、process 等),但图像根本没有改变...
我错过了什么?
【问题讨论】:
标签: android image filter fresco