Fresco-Source-Analysis
Fresco-Source-Analysis copied to clipboard
如何获取控件的图片转化为Bitmap
你好,当我用Fresco的时候采用setController去设置图片,而BaseControllerListener中的onIntermediateImageSet()方法是图片请求成功,控件上面已经显示了图片,现在我想把控件的内容拿到自己对图片内容做处理该如何做呢,采用draweeController.getHierarchy() .getTopLevelDrawable();可以吗?谢谢!
@zhanxiuwen draweeController.getHierarchy() .getTopLevelDrawable()
是无法获取你的目标图片的,因为它是一个ArrayDrawable
,里面含有一个Drawable
数组,数组中的某一个才是你的目标图片。如果真的想对图片做处理,可以这样:
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.parse("url"))
.setPostprocessor((new BasePostprocessor() {
@Override
public void process(Bitmap bitmap) {
super.process(bitmap);
//它就是你要的bitmap,在这里处理
}
}).build();
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setImageRequest(request)
.build();
draweeView.setController(controller);
好的谢谢,我已经开始这样做了。但是当遇到一个群组聊天的时候需要多个bitmap来绘制一个复合bitmap。而绘制出来的bitmap存在问题,但是采用imageloader的时候用请求到的bitmap来绘制是没有问题的
你好,我在这里遇到一个问题,比如说从一个user集合里面用循环去加载这个集合中每个人的图像(采用上面的那种方法)。但并不能加载成功,是否是与request 有关呢?官网上有这个说法
不知道是否有影响,谢谢!
@zhanxiuwen 方便的话把相关代码贴出来?这么说我无法知道问题的原因
你好,我把代码发到你邮箱了。谢谢!