欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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;
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。