1.基本用法
Observable.just("https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2019/5/17/16ac4f7f486ca77a~tplv-t2oaga2asx-image.image")
.map(new Function<String, Bitmap>() {
@Override
public Bitmap apply(@NonNull String urlPath) throws Exception {
URL url = new URL(urlPath);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
InputStream inputStream = urlConnection.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
return bitmap;
}
})
.subscribeOn(Schedulers.io())
.observerOn(Schedulers.mainThread())
.subscribe(new Consumer<Bitmap>() {
@Override
public void onNext(Bitmap bitmap) {
mImage.setImageBitmap(bitmap);
}
});
RxJava源码阅读(一)和
RxJava源码阅读,map操作符(二)中有讲到,Observable.just()创建了一个ObservableJust实例,map操作符后将ObservableJust封装为ObservableMap。不过subscribeOn方法中指定了上游事件在子线程中进行,observerOn方法指定了最后一步回调在主线程中进行