我有Android应用程序的方法返回图像作为Observable。我需要这个图像在button.setDrawable(Drawable)中使用它。所以我需要简单的Drawable类型。如何从这个返回语句得到像这样的图像?
所以我需要简单的Drawable类型。如何从这里得到这样的图像返回语句?
你必须订阅Observable
。Subscribe#onNext
将接收Drawable
作为参数。请注意,必须从Ui线程调用setButton
。所以要记住观察(observeOn
)到正确的线程(UI线程)。
drawableObservable
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<Drawable>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Drawable drawable) {
}
});
或与
drawableObservable
.observeOn(AndroidSchedulers.mainThread())
.subscribe(button::setBackground, Throwable::printStackTrace);
假设你的observable是names obs
:
obs.toBlocking().first()
这个会被阻塞,直到Drawable被可观察对象发出。
或者,使用subscribe()
在可观察对象发出Drawable时立即获得它,而不阻塞。
如果你想在调用setDrawable()
之前阻塞直到可观察对象完成,使用toBlocking
。如果你想让它在可观察对象结束时发生(作为回调),subscribe