私は自分のアプリに画像を表示するためにフレスコ画を使用しています。今私はいくつかのフィルタを自分のイメージに適用しようとしていますが、問題は、フィルタライブラリがビットマップになるということです。しかし、draweeView.setImageBitmapは非推奨です。Android fresco lib、カスタムフィルタを適用
私もここにこの
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);
のようなポストプロセッサで試してみましたが、私は、フィルタをクリックしたときに、私はちょうどこの
meshPostprocessor.setFilter(colorFilterConfig.get(position));
を実行するポストプロセッサ
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);
}
}
です私はデバッガを試したが、コードはすべてのメソッド(setFilter、プロセスなど..)を通過するが、イメージはchではない怒っている...
私は何が欠けていますか?
私はフィルタを何度も変更できるはずですので、repeatedProcessorが必要でした。あなたの投稿は実際に役に立ちました。私は、最後にスーパーを追加するだけです。 –