package com.mcxtzhang.rxjavademo.async; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import com.squareup.okhttp.Callback; import com.squareup.okhttp.OkHttpClient; import com.squareup.okhttp.Request; import com.squareup.okhttp.Response; import java.io.IOException; import rx.Observable; import rx.Subscriber; /** * 介绍: * 作者:zhangxutong * 邮箱:mcxtzhang@163.com * 主页:http://blog.csdn.net/zxt0601 * 时间: 2016/12/2. */ public class DownloadUtils { private OkHttpClient mOkHttpClient; public DownloadUtils() { mOkHttpClient = new OkHttpClient(); } public Observable<Bitmap> loadPicByUrl(String url) { return Observable.create(new Observable.OnSubscribe<Bitmap>() { @Override public void call(Subscriber<? super Bitmap> subscriber) { if (!subscriber.isUnsubscribed()) { //在这里请求图片数据 Request request = new Request.Builder().url(url).build(); mOkHttpClient.newCall(request).enqueue(new Callback() { @Override public void onFailure(Request request, IOException e) { subscriber.onError(e); } @Override public void onResponse(Response response) throws IOException { if (response.isSuccessful()) { byte[] bytes = response.body().bytes(); subscriber.onNext(BitmapFactory.decodeByteArray(bytes, 0, bytes.length)); subscriber.onCompleted(); } else { subscriber.onError(new IOException(response.message())); } } }); } } }); } }