如何解决在Android中使用glide和Rxjava从URL与其他Api调用并行获取位图
我正在通过以下方式并行进行两个API调用。
Single.zip(API1.subscribeOn(Schedulers.io()),API2.subscribeOn(Schedulers.io()),Bifunction())).subscribe();
我想从URL加载位图并将其发送回去。像这样
Single.zip(API1.subscribeOn(Schedulers.io()),getImageBitmap(),Function3())).subscribe();
在方法getImageBitmap
中,我试图返回Single<Bitmap>
。像这样的东西。
Single.create(new SingleOnSubscribe<Bitmap>() {
@Override
public void subscribe(final SingleEmitter<Bitmap> emitter) throws Exception {
Glide.with(context).asBitmap().load(url)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.error(R.drawable.ic_login_error).addListener(new RequestListener<Bitmap>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e,Object model,Target<Bitmap> target,boolean isFirstResource) {
emitter.onSuccess(null);
return false;
}
@Override
public boolean onResourceReady(Bitmap resource,DataSource dataSource,boolean isFirstResource) {
emitter.onSuccess(resource);
return false;
}
});
}
}).subscribeOn(AndroidSchedulers.mainThread());
我没有得到任何结果。如何通过以下方法从Glide获取位图?
解决方法
从Glide加载图像时,我们应该调用.submit()
方法或.into(...)
才能成功获取位图或加载图像。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。