RXjava网络获取图片数据的方法
程序员文章站
2022-04-29 10:34:44
本文实例为大家分享了rxjava网络获取图片数据的具体代码,供大家参考,具体内容如下
rxjava
// an highlighted block
image...
本文实例为大家分享了rxjava网络获取图片数据的具体代码,供大家参考,具体内容如下
rxjava
// an highlighted block image = findviewbyid(r.id.tu); observable.create(new observableonsubscribe<bitmap>() { @override public void subscribe(observableemitter<bitmap> e) throws exception { e.onnext(getbitmap()); } }) //设置数据在子线程中遍历 .subscribeon(schedulers.io()) //设置图片在主线程中加载 .observeon(androidschedulers.mainthread()) .subscribe(new observer<bitmap>() { @override public void onsubscribe(disposable d) { } @override public void onnext(bitmap bitmap) { image.setimagebitmap(bitmap); } @override public void onerror(throwable e) { } @override public void oncomplete() { } }); image.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { toast.maketext(mainactivity.this, "ee", toast.length_short).show(); } }); image.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { } });
网络获取数据
// an highlighted block //获取网络数据 private bitmap getbitmap() { string str = "https://b-ssl.duitang.com/uploads/blog/201406/16/20140616171020_tiexr.thumb.700_0.jpeg"; try { url url = new url(str); httpurlconnection urlconnection = (httpurlconnection) url.openconnection(); urlconnection.setrequestmethod("get"); urlconnection.setconnecttimeout(2000); urlconnection.connect(); if(urlconnection.getresponsecode() == 200){ return bitmapfactory.decodestream(urlconnection.getinputstream()); } } catch (malformedurlexception e) { e.printstacktrace(); } catch (ioexception e) { e.printstacktrace(); } return null; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。